Sophie

Sophie

distrib > Mageia > 6 > x86_64 > by-pkgid > 16e298361edb3000a9b1c7b2dae804b9 > files > 667

apt-mga-1.4.6-1.mga6.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>apt: apt-pkg/edsp.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">apt
   &#160;<span id="projectnumber">1.4.6</span>
   </div>
   <div id="projectbrief">commandline package manager</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_18f22d4be2ca84c350e120b6506056ca.xhtml">apt-pkg</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">edsp.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="cacheset_8h_source.xhtml">apt-pkg/cacheset.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="pkgcache_8h_source.xhtml">apt-pkg/pkgcache.h</a>&gt;</code><br />
<code>#include &lt;apt-pkg/cacheiterators.h&gt;</code><br />
<code>#include &lt;apt-pkg/macros.h&gt;</code><br />
<code>#include &lt;stdio.h&gt;</code><br />
<code>#include &lt;list&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &lt;apt-pkg/depcache.h&gt;</code><br />
<code>#include &lt;apt-pkg/progress.h&gt;</code><br />
</div>
<p><a href="edsp_8h_source.xhtml">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:aa705cf7e79a21c2352b00ffe20cd295f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="edsp_8h.xhtml#aa705cf7e79a21c2352b00ffe20cd295f">Flags</a> { <a class="el" href="edsp_8h.xhtml#aa705cf7e79a21c2352b00ffe20cd295fa36fe7b5cf8c26e1ff17fee1cb99165af">AUTOREMOVE</a> = (1 &lt;&lt; 0), 
<a class="el" href="edsp_8h.xhtml#aa705cf7e79a21c2352b00ffe20cd295fad7074512ea185aa888fbcb5f11d1aebf">UPGRADE_ALL</a> = (1 &lt;&lt; 1), 
<a class="el" href="edsp_8h.xhtml#aa705cf7e79a21c2352b00ffe20cd295faad9ac43e0a0dd0b65b7cfeab99eec32b">FORBID_NEW_INSTALL</a> = (1 &lt;&lt; 2), 
<a class="el" href="edsp_8h.xhtml#aa705cf7e79a21c2352b00ffe20cd295fa5331c18d28f3848c3c66fde12c2ff9be">FORBID_REMOVE</a> = (1 &lt;&lt; 3)
 }</td></tr>
<tr class="separator:aa705cf7e79a21c2352b00ffe20cd295f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa705cf7e79a21c2352b00ffe20cd295f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="edsp_8h.xhtml#aa705cf7e79a21c2352b00ffe20cd295f">Flags</a> { <a class="el" href="edsp_8h.xhtml#aa705cf7e79a21c2352b00ffe20cd295faf2589ddd5fe32038a94a30ca19204f31">IMMEDIATE_CONFIGURATION_ALL</a> = (1 &lt;&lt; 0), 
<a class="el" href="edsp_8h.xhtml#aa705cf7e79a21c2352b00ffe20cd295fa6e282506424770ad58d7564f5a2d1f68">NO_IMMEDIATE_CONFIGURATION</a> = (1 &lt;&lt; 1), 
<a class="el" href="edsp_8h.xhtml#aa705cf7e79a21c2352b00ffe20cd295fa8a6538a4c22fc8f4745a20f20e6e990a">ALLOW_TEMPORARY_REMOVE_OF_ESSENTIALS</a> = (1 &lt;&lt; 2)
 }</td></tr>
<tr class="separator:aa705cf7e79a21c2352b00ffe20cd295f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16ea6e6c2f27310ca3f4a2a1714b0409"><td class="memItemLeft" align="right" valign="top"><a id="a16ea6e6c2f27310ca3f4a2a1714b0409"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>PKG_ACTION</b> { <b>NOOP</b>, 
<b>INSTALL</b>, 
<b>REINSTALL</b>, 
<b>REMOVE</b>
 }</td></tr>
<tr class="separator:a16ea6e6c2f27310ca3f4a2a1714b0409"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a144edc83084c05f03beb8184315eeb72"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="edsp_8h.xhtml#a144edc83084c05f03beb8184315eeb72">WriteRequest</a> (<a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;Cache, <a class="el" href="classFileFd.xhtml">FileFd</a> &amp;output, unsigned int const flags=0, <a class="el" href="classOpProgress.xhtml">OpProgress</a> *Progress=NULL)</td></tr>
<tr class="memdesc:a144edc83084c05f03beb8184315eeb72"><td class="mdescLeft">&#160;</td><td class="mdescRight">creates the EDSP request stanza  <a href="edsp_8h.xhtml#a144edc83084c05f03beb8184315eeb72">More...</a><br /></td></tr>
<tr class="separator:a144edc83084c05f03beb8184315eeb72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae46a2ea2c35a2eb705041571637adfdf"><td class="memItemLeft" align="right" valign="top"><a id="ae46a2ea2c35a2eb705041571637adfdf"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>WriteRequest</b> (<a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;Cache, FILE *output, bool const upgrade=false, bool const distUpgrade=false, bool const autoRemove=false, <a class="el" href="classOpProgress.xhtml">OpProgress</a> *Progress=NULL) APT_DEPRECATED_MSG(&quot;Use <a class="el" href="classFileFd.xhtml">FileFd</a>-based interface instead&quot;)</td></tr>
<tr class="separator:ae46a2ea2c35a2eb705041571637adfdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace8dc6f317e5f58ba8005f190d707230"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="edsp_8h.xhtml#ace8dc6f317e5f58ba8005f190d707230">WriteScenario</a> (<a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;Cache, <a class="el" href="classFileFd.xhtml">FileFd</a> &amp;output, <a class="el" href="classOpProgress.xhtml">OpProgress</a> *Progress=NULL)</td></tr>
<tr class="memdesc:ace8dc6f317e5f58ba8005f190d707230"><td class="mdescLeft">&#160;</td><td class="mdescRight">creates the scenario representing the package universe  <a href="edsp_8h.xhtml#ace8dc6f317e5f58ba8005f190d707230">More...</a><br /></td></tr>
<tr class="separator:ace8dc6f317e5f58ba8005f190d707230"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5670b63da8b15dae142a45534a70c3d"><td class="memItemLeft" align="right" valign="top"><a id="af5670b63da8b15dae142a45534a70c3d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>WriteScenario</b> (<a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;Cache, FILE *output, <a class="el" href="classOpProgress.xhtml">OpProgress</a> *Progress=NULL) APT_DEPRECATED_MSG(&quot;Use <a class="el" href="classFileFd.xhtml">FileFd</a>-based interface instead&quot;)</td></tr>
<tr class="separator:af5670b63da8b15dae142a45534a70c3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd6275c5c4a7742034f514cba5f6d925"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="edsp_8h.xhtml#abd6275c5c4a7742034f514cba5f6d925">WriteLimitedScenario</a> (<a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;Cache, <a class="el" href="classFileFd.xhtml">FileFd</a> &amp;output, std::vector&lt; bool &gt; const &amp;pkgset, <a class="el" href="classOpProgress.xhtml">OpProgress</a> *Progress=NULL)</td></tr>
<tr class="memdesc:abd6275c5c4a7742034f514cba5f6d925"><td class="mdescLeft">&#160;</td><td class="mdescRight">creates a limited scenario representing the package universe  <a href="edsp_8h.xhtml#abd6275c5c4a7742034f514cba5f6d925">More...</a><br /></td></tr>
<tr class="separator:abd6275c5c4a7742034f514cba5f6d925"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8006c5f0384bb33f6c1f3af638d7a55"><td class="memItemLeft" align="right" valign="top"><a id="ad8006c5f0384bb33f6c1f3af638d7a55"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>WriteLimitedScenario</b> (<a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;Cache, FILE *output, <a class="el" href="classAPT_1_1PackageContainer.xhtml">APT::PackageSet</a> const &amp;pkgset, <a class="el" href="classOpProgress.xhtml">OpProgress</a> *Progress=NULL) APT_DEPRECATED_MSG(&quot;Use <a class="el" href="classFileFd.xhtml">FileFd</a>-based interface instead&quot;)</td></tr>
<tr class="separator:ad8006c5f0384bb33f6c1f3af638d7a55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09e6a4e219c1ae943e206589a7b73184"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="edsp_8h.xhtml#a09e6a4e219c1ae943e206589a7b73184">ReadResponse</a> (int const input, <a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;Cache, <a class="el" href="classOpProgress.xhtml">OpProgress</a> *Progress=NULL)</td></tr>
<tr class="memdesc:a09e6a4e219c1ae943e206589a7b73184"><td class="mdescLeft">&#160;</td><td class="mdescRight">waits and acts on the information returned from the solver  <a href="edsp_8h.xhtml#a09e6a4e219c1ae943e206589a7b73184">More...</a><br /></td></tr>
<tr class="separator:a09e6a4e219c1ae943e206589a7b73184"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bd252de618b59d31cefb94257e5f5c4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="edsp_8h.xhtml#a9bd252de618b59d31cefb94257e5f5c4">ReadRequest</a> (int const input, std::list&lt; std::string &gt; &amp;install, std::list&lt; std::string &gt; &amp;remove, unsigned int &amp;flags)</td></tr>
<tr class="memdesc:a9bd252de618b59d31cefb94257e5f5c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">search and read the request stanza for action later  <a href="edsp_8h.xhtml#a9bd252de618b59d31cefb94257e5f5c4">More...</a><br /></td></tr>
<tr class="separator:a9bd252de618b59d31cefb94257e5f5c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01c658986341799cd92ce2a8c4d55130"><td class="memItemLeft" align="right" valign="top"><a id="a01c658986341799cd92ce2a8c4d55130"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>APT_DEPRECATED_MSG</b> (&quot;use the flag-based version instead&quot;) bool ReadRequest(int const input</td></tr>
<tr class="separator:a01c658986341799cd92ce2a8c4d55130"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1eb0e2b98edb642d411ab78b75522671"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="edsp_8h.xhtml#a1eb0e2b98edb642d411ab78b75522671">ApplyRequest</a> (std::list&lt; std::string &gt; const &amp;install, std::list&lt; std::string &gt; const &amp;remove, <a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;Cache)</td></tr>
<tr class="memdesc:a1eb0e2b98edb642d411ab78b75522671"><td class="mdescLeft">&#160;</td><td class="mdescRight">takes the request lists and applies it on the cache  <a href="edsp_8h.xhtml#a1eb0e2b98edb642d411ab78b75522671">More...</a><br /></td></tr>
<tr class="separator:a1eb0e2b98edb642d411ab78b75522671"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b61a4b0c46fe5785533169e864d0478"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="edsp_8h.xhtml#a6b61a4b0c46fe5785533169e864d0478">WriteSolutionStanza</a> (<a class="el" href="classFileFd.xhtml">FileFd</a> &amp;output, char const *const Type, <a class="el" href="classpkgCache_1_1VerIterator.xhtml">pkgCache::VerIterator</a> const &amp;Ver)</td></tr>
<tr class="memdesc:a6b61a4b0c46fe5785533169e864d0478"><td class="mdescLeft">&#160;</td><td class="mdescRight">formats a solution stanza for the given version  <a href="edsp_8h.xhtml#a6b61a4b0c46fe5785533169e864d0478">More...</a><br /></td></tr>
<tr class="separator:a6b61a4b0c46fe5785533169e864d0478"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31df7aa53d9bb6f34ba94e0fad945784"><td class="memItemLeft" align="right" valign="top"><a id="a31df7aa53d9bb6f34ba94e0fad945784"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>WriteSolution</b> (<a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;Cache, FILE *output) APT_DEPRECATED_MSG(&quot;Use <a class="el" href="classFileFd.xhtml">FileFd</a>-based single-stanza interface instead&quot;)</td></tr>
<tr class="separator:a31df7aa53d9bb6f34ba94e0fad945784"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe9b58f25ca04a394b4778fec617f332"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="edsp_8h.xhtml#abe9b58f25ca04a394b4778fec617f332">WriteProgress</a> (unsigned short const percent, const char *const message, <a class="el" href="classFileFd.xhtml">FileFd</a> &amp;output)</td></tr>
<tr class="memdesc:abe9b58f25ca04a394b4778fec617f332"><td class="mdescLeft">&#160;</td><td class="mdescRight">sends a progress report  <a href="edsp_8h.xhtml#abe9b58f25ca04a394b4778fec617f332">More...</a><br /></td></tr>
<tr class="separator:abe9b58f25ca04a394b4778fec617f332"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2796db2773646515a4419458c561c945"><td class="memItemLeft" align="right" valign="top"><a id="a2796db2773646515a4419458c561c945"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>WriteProgress</b> (unsigned short const percent, const char *const message, FILE *output) APT_DEPRECATED_MSG(&quot;Use <a class="el" href="classFileFd.xhtml">FileFd</a>-based interface instead&quot;)</td></tr>
<tr class="separator:a2796db2773646515a4419458c561c945"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afea09dd2038b9f81c2f25ba43455c736"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="edsp_8h.xhtml#afea09dd2038b9f81c2f25ba43455c736">WriteError</a> (char const *const uuid, std::string const &amp;message, <a class="el" href="classFileFd.xhtml">FileFd</a> &amp;output)</td></tr>
<tr class="memdesc:afea09dd2038b9f81c2f25ba43455c736"><td class="mdescLeft">&#160;</td><td class="mdescRight">sends an error report  <a href="edsp_8h.xhtml#afea09dd2038b9f81c2f25ba43455c736">More...</a><br /></td></tr>
<tr class="separator:afea09dd2038b9f81c2f25ba43455c736"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69d1c359391494571c64b6ca6ba6d6e4"><td class="memItemLeft" align="right" valign="top"><a id="a69d1c359391494571c64b6ca6ba6d6e4"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>WriteError</b> (char const *const uuid, std::string const &amp;message, FILE *output) APT_DEPRECATED_MSG(&quot;Use <a class="el" href="classFileFd.xhtml">FileFd</a>-based interface instead&quot;)</td></tr>
<tr class="separator:a69d1c359391494571c64b6ca6ba6d6e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab924df74c17e392db3f28e6157e9c462"><td class="memItemLeft" align="right" valign="top">pid_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="edsp_8h.xhtml#ab924df74c17e392db3f28e6157e9c462">ExecuteSolver</a> (const char *const solver, int *const solver_in, int *const solver_out, bool)</td></tr>
<tr class="memdesc:ab924df74c17e392db3f28e6157e9c462"><td class="mdescLeft">&#160;</td><td class="mdescRight">executes the given solver and returns the pipe ends  <a href="edsp_8h.xhtml#ab924df74c17e392db3f28e6157e9c462">More...</a><br /></td></tr>
<tr class="separator:ab924df74c17e392db3f28e6157e9c462"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a418cc551dd498e350469519d1bb6c02e"><td class="memItemLeft" align="right" valign="top"><a id="a418cc551dd498e350469519d1bb6c02e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>APT_DEPRECATED_MSG</b> (&quot;add a dummy bool parameter to use the overload returning a pid_t&quot;) bool ExecuteSolver(const char *const solver</td></tr>
<tr class="separator:a418cc551dd498e350469519d1bb6c02e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a087a46c9e7f5cb0f783587362084f3dd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="edsp_8h.xhtml#a087a46c9e7f5cb0f783587362084f3dd">ResolveExternal</a> (const char *const solver, <a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;Cache, unsigned int const flags=0, <a class="el" href="classOpProgress.xhtml">OpProgress</a> *Progress=NULL)</td></tr>
<tr class="memdesc:a087a46c9e7f5cb0f783587362084f3dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">call an external resolver to handle the request  <a href="edsp_8h.xhtml#a087a46c9e7f5cb0f783587362084f3dd">More...</a><br /></td></tr>
<tr class="separator:a087a46c9e7f5cb0f783587362084f3dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0c18aa6a9922b2b67ce6698482c3593"><td class="memItemLeft" align="right" valign="top"><a id="ac0c18aa6a9922b2b67ce6698482c3593"></a>
APT_HIDDEN bool&#160;</td><td class="memItemRight" valign="bottom"><b>WriteRequest</b> (<a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;Cache, <a class="el" href="classFileFd.xhtml">FileFd</a> &amp;output, unsigned int const flags, <a class="el" href="classOpProgress.xhtml">OpProgress</a> *const Progress)</td></tr>
<tr class="separator:ac0c18aa6a9922b2b67ce6698482c3593"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d5a9d6e01a6f8cbf1277dfb64ce8bae"><td class="memItemLeft" align="right" valign="top"><a id="a9d5a9d6e01a6f8cbf1277dfb64ce8bae"></a>
APT_HIDDEN bool&#160;</td><td class="memItemRight" valign="bottom"><b>WriteScenario</b> (<a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;Cache, <a class="el" href="classFileFd.xhtml">FileFd</a> &amp;output, <a class="el" href="classOpProgress.xhtml">OpProgress</a> *const Progress)</td></tr>
<tr class="separator:a9d5a9d6e01a6f8cbf1277dfb64ce8bae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbff14d46690382955028454831d8f63"><td class="memItemLeft" align="right" valign="top"><a id="afbff14d46690382955028454831d8f63"></a>
APT_HIDDEN bool&#160;</td><td class="memItemRight" valign="bottom"><b>OrderInstall</b> (char const *const planner, <a class="el" href="classpkgPackageManager.xhtml">pkgPackageManager</a> *const PM, unsigned int const version, <a class="el" href="classOpProgress.xhtml">OpProgress</a> *const Progress)</td></tr>
<tr class="separator:afbff14d46690382955028454831d8f63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ce5266f57f02d0dda7f852e394bda6b"><td class="memItemLeft" align="right" valign="top"><a id="a6ce5266f57f02d0dda7f852e394bda6b"></a>
APT_HIDDEN bool&#160;</td><td class="memItemRight" valign="bottom"><b>ReadResponse</b> (int const input, <a class="el" href="classpkgPackageManager.xhtml">pkgPackageManager</a> *const PM, <a class="el" href="classOpProgress.xhtml">OpProgress</a> *const Progress)</td></tr>
<tr class="separator:a6ce5266f57f02d0dda7f852e394bda6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a518f29dc3976c55ac43cd6cdc4727a22"><td class="memItemLeft" align="right" valign="top"><a id="a518f29dc3976c55ac43cd6cdc4727a22"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>ReadRequest</b> (int const input, std::list&lt; std::pair&lt; std::string, PKG_ACTION &gt;&gt; &amp;actions, unsigned int &amp;flags)</td></tr>
<tr class="separator:a518f29dc3976c55ac43cd6cdc4727a22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a410145e96586b63a3ba7d533ecf7642f"><td class="memItemLeft" align="right" valign="top"><a id="a410145e96586b63a3ba7d533ecf7642f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>ApplyRequest</b> (std::list&lt; std::pair&lt; std::string, PKG_ACTION &gt;&gt; &amp;actions, <a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;Cache)</td></tr>
<tr class="separator:a410145e96586b63a3ba7d533ecf7642f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:aa32f33daf2aa03385e94cdc8c2488467"><td class="memItemLeft" align="right" valign="top"><a id="aa32f33daf2aa03385e94cdc8c2488467"></a>
std::list&lt; std::string &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>install</b></td></tr>
<tr class="separator:aa32f33daf2aa03385e94cdc8c2488467"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2307844d91cd149de9b9e3b02b73607d"><td class="memItemLeft" align="right" valign="top"><a id="a2307844d91cd149de9b9e3b02b73607d"></a>
std::list&lt; std::string &gt; std::list&lt; std::string &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>remove</b></td></tr>
<tr class="separator:a2307844d91cd149de9b9e3b02b73607d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6952dabbce8a09986ea3cf9780dce338"><td class="memItemLeft" align="right" valign="top"><a id="a6952dabbce8a09986ea3cf9780dce338"></a>
std::list&lt; std::string &gt; std::list&lt; std::string &gt; bool &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>upgrade</b></td></tr>
<tr class="separator:a6952dabbce8a09986ea3cf9780dce338"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43ab5bc4ad3f46d5b6c289986965e02c"><td class="memItemLeft" align="right" valign="top"><a id="a43ab5bc4ad3f46d5b6c289986965e02c"></a>
std::list&lt; std::string &gt; std::list&lt; std::string &gt; bool bool &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>distUpgrade</b></td></tr>
<tr class="separator:a43ab5bc4ad3f46d5b6c289986965e02c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46c9d9ef3b503fcdfe79c319dfb4c77e"><td class="memItemLeft" align="right" valign="top"><a id="a46c9d9ef3b503fcdfe79c319dfb4c77e"></a>
std::list&lt; std::string &gt; std::list&lt; std::string &gt; bool bool bool &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>autoRemove</b></td></tr>
<tr class="separator:a46c9d9ef3b503fcdfe79c319dfb4c77e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a862e1c0b416df62d5eee133eb027bd36"><td class="memItemLeft" align="right" valign="top"><a id="a862e1c0b416df62d5eee133eb027bd36"></a>
int *&#160;</td><td class="memItemRight" valign="bottom"><b>solver_in</b></td></tr>
<tr class="separator:a862e1c0b416df62d5eee133eb027bd36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf8c9750420a6287e11ef758203e3384"><td class="memItemLeft" align="right" valign="top"><a id="adf8c9750420a6287e11ef758203e3384"></a>
int int *&#160;</td><td class="memItemRight" valign="bottom"><b>solver_out</b></td></tr>
<tr class="separator:adf8c9750420a6287e11ef758203e3384"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55d171db69665a0bfc7ae2c2c5eef967"><td class="memItemLeft" align="right" valign="top"><a id="a55d171db69665a0bfc7ae2c2c5eef967"></a>
<a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>Cache</b></td></tr>
<tr class="separator:a55d171db69665a0bfc7ae2c2c5eef967"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecc31ffa8cb908825ad2ead7b1238626"><td class="memItemLeft" align="right" valign="top"><a id="aecc31ffa8cb908825ad2ead7b1238626"></a>
<a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> bool const bool const bool const <a class="el" href="classOpProgress.xhtml">OpProgress</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>Progress</b> = NULL)</td></tr>
<tr class="separator:aecc31ffa8cb908825ad2ead7b1238626"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Description {{{ </p><h6></h6>
<p>Set of methods to help writing and reading everything needed for EDSP with the notable exception of reading a scenario for conversion into a Cache as this is handled by edsp interface for listparser and friends </p><h6></h6>
</div><h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="file_aa705cf7e79a21c2352b00ffe20cd295f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#file_aa705cf7e79a21c2352b00ffe20cd295f">&#9670;&nbsp;</a></span>Flags <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum Flags</td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aa705cf7e79a21c2352b00ffe20cd295fa36fe7b5cf8c26e1ff17fee1cb99165af"></a>AUTOREMOVE&#160;</td><td class="fielddoc"><p>removal of unneeded packages should be performed </p>
</td></tr>
<tr><td class="fieldname"><a id="aa705cf7e79a21c2352b00ffe20cd295fad7074512ea185aa888fbcb5f11d1aebf"></a>UPGRADE_ALL&#160;</td><td class="fielddoc"><p>upgrade all installed packages, like 'apt-get full-upgrade' without forbid flags </p>
</td></tr>
<tr><td class="fieldname"><a id="aa705cf7e79a21c2352b00ffe20cd295faad9ac43e0a0dd0b65b7cfeab99eec32b"></a>FORBID_NEW_INSTALL&#160;</td><td class="fielddoc"><p>forbid the resolver to install new packages </p>
</td></tr>
<tr><td class="fieldname"><a id="aa705cf7e79a21c2352b00ffe20cd295fa5331c18d28f3848c3c66fde12c2ff9be"></a>FORBID_REMOVE&#160;</td><td class="fielddoc"><p>forbid the resolver to remove packages </p>
</td></tr>
</table>

</div>
</div>
<a id="file_aa705cf7e79a21c2352b00ffe20cd295f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#file_aa705cf7e79a21c2352b00ffe20cd295f">&#9670;&nbsp;</a></span>Flags <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum Flags</td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aa705cf7e79a21c2352b00ffe20cd295faf2589ddd5fe32038a94a30ca19204f31"></a>IMMEDIATE_CONFIGURATION_ALL&#160;</td><td class="fielddoc"><p>try to keep the least amount of packages unconfigured as possible at all times </p>
</td></tr>
<tr><td class="fieldname"><a id="aa705cf7e79a21c2352b00ffe20cd295fa6e282506424770ad58d7564f5a2d1f68"></a>NO_IMMEDIATE_CONFIGURATION&#160;</td><td class="fielddoc"><p>do not perform immediate configuration at all </p>
</td></tr>
<tr><td class="fieldname"><a id="aa705cf7e79a21c2352b00ffe20cd295fa8a6538a4c22fc8f4745a20f20e6e990a"></a>ALLOW_TEMPORARY_REMOVE_OF_ESSENTIALS&#160;</td><td class="fielddoc"><p>just as the name suggests, very special case and dangerous! </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="file_a1eb0e2b98edb642d411ab78b75522671"></a>
<h2 class="memtitle"><span class="permalink"><a href="#file_a1eb0e2b98edb642d411ab78b75522671">&#9670;&nbsp;</a></span>ApplyRequest()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ApplyRequest </td>
          <td>(</td>
          <td class="paramtype">std::list&lt; std::string &gt; const &amp;&#160;</td>
          <td class="paramname"><em>install</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::list&lt; std::string &gt; const &amp;&#160;</td>
          <td class="paramname"><em>remove</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;&#160;</td>
          <td class="paramname"><em>Cache</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>takes the request lists and applies it on the cache </p>
<p>The lists as created by #ReadRequest will be used to find the packages in question and mark them for install/remove. No solving is done and no auto-install/-remove.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">install</td><td>is a list of packages to mark for installation </td></tr>
    <tr><td class="paramname">remove</td><td>is a list of packages to mark for removal </td></tr>
    <tr><td class="paramname">Cache</td><td>is there the markers should be set</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if the request couldn't be applied, true otherwise </dd></dl>

<p class="reference">References <a class="el" href="edsp_8h.xhtml#a1eb0e2b98edb642d411ab78b75522671">EDSP::ApplyRequest()</a>, and <a class="el" href="classpkgDepCache.xhtml#aab6b1c53f7766ad618b80ebee701b60d">pkgDepCache::MarkInstall()</a>.</p>

<p class="reference">Referenced by <a class="el" href="edsp_8h.xhtml#a1eb0e2b98edb642d411ab78b75522671">EDSP::ApplyRequest()</a>.</p>

</div>
</div>
<a id="file_ab924df74c17e392db3f28e6157e9c462"></a>
<h2 class="memtitle"><span class="permalink"><a href="#file_ab924df74c17e392db3f28e6157e9c462">&#9670;&nbsp;</a></span>ExecuteSolver()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pid_t ExecuteSolver </td>
          <td>(</td>
          <td class="paramtype">const char *const&#160;</td>
          <td class="paramname"><em>solver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *const&#160;</td>
          <td class="paramname"><em>solver_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *const&#160;</td>
          <td class="paramname"><em>solver_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>executes the given solver and returns the pipe ends </p>
<p>The given solver is executed if it can be found in one of the configured directories and setup for it is performed.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">solver</td><td>to execute </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">solver_in</td><td>will be the stdin of the solver </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">solver_out</td><td>will be the stdout of the solver</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>PID of the started solver or 0 if failure occurred </dd></dl>

<p class="reference">References <a class="el" href="edsp_8h.xhtml#ab924df74c17e392db3f28e6157e9c462">EDSP::ExecuteSolver()</a>.</p>

<p class="reference">Referenced by <a class="el" href="edsp_8h.xhtml#ab924df74c17e392db3f28e6157e9c462">EDSP::ExecuteSolver()</a>.</p>

</div>
</div>
<a id="file_a9bd252de618b59d31cefb94257e5f5c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#file_a9bd252de618b59d31cefb94257e5f5c4">&#9670;&nbsp;</a></span>ReadRequest()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ReadRequest </td>
          <td>(</td>
          <td class="paramtype">int const&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::list&lt; std::string &gt; &amp;&#160;</td>
          <td class="paramname"><em>install</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::list&lt; std::string &gt; &amp;&#160;</td>
          <td class="paramname"><em>remove</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int &amp;&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>search and read the request stanza for action later </p>
<p>This method while ignore the input up to the point it finds the Request: line as an indicator for the Request stanza. The request is stored in the parameters install and remove then, as the cache isn't build yet as the scenario follows the request.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">input</td><td>file descriptor with the edsp input for the solver </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">install</td><td>is a list which gets populated with requested installs </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">remove</td><td>is a list which gets populated with requested removals </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">upgrade</td><td>is true if it is a request like apt-get upgrade </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">distUpgrade</td><td>is true if it is a request like apt-get dist-upgrade </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">autoRemove</td><td>is true if removal of unneeded packages should be performed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the request could be found and worked on, otherwise false </dd></dl>

<p class="reference">References <a class="el" href="edsp_8h.xhtml#a9bd252de618b59d31cefb94257e5f5c4">EDSP::ReadRequest()</a>.</p>

<p class="reference">Referenced by <a class="el" href="edsp_8h.xhtml#a9bd252de618b59d31cefb94257e5f5c4">EDSP::ReadRequest()</a>.</p>

</div>
</div>
<a id="file_a09e6a4e219c1ae943e206589a7b73184"></a>
<h2 class="memtitle"><span class="permalink"><a href="#file_a09e6a4e219c1ae943e206589a7b73184">&#9670;&nbsp;</a></span>ReadResponse()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ReadResponse </td>
          <td>(</td>
          <td class="paramtype">int const&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;&#160;</td>
          <td class="paramname"><em>Cache</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classOpProgress.xhtml">OpProgress</a> *&#160;</td>
          <td class="paramname"><em>Progress</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>waits and acts on the information returned from the solver </p>
<p>This method takes care of interpreting whatever the solver sends through the standard output like a solution, progress or an error. The main thread should hand his control over to this method to wait for the solver to finish the given task. The file descriptor used as input is completely consumed and closed by the method.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">input</td><td>file descriptor with the response from the solver </td></tr>
    <tr><td class="paramname">Cache</td><td>the solution should be applied on if any </td></tr>
    <tr><td class="paramname">Progress</td><td>is an instance to report progress to</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if a solution is found and applied correctly, otherwise false </dd></dl>

<p class="reference">References <a class="el" href="classpkgTagSection.xhtml#a5e103cd6cfc37abd35b285a8c48a812e">pkgTagSection::Count()</a>, <a class="el" href="classGlobalError.xhtml#a2ea0bb09adcce7f655e8f8ee8d30561ba0593585da9181e972974c1274d8f2b4f">GlobalError::DEBUG</a>, <a class="el" href="classpkgDepCache.xhtml#aab6b1c53f7766ad618b80ebee701b60d">pkgDepCache::MarkInstall()</a>, and <a class="el" href="edsp_8h.xhtml#a09e6a4e219c1ae943e206589a7b73184">EDSP::ReadResponse()</a>.</p>

<p class="reference">Referenced by <a class="el" href="edsp_8h.xhtml#a09e6a4e219c1ae943e206589a7b73184">EDSP::ReadResponse()</a>.</p>

</div>
</div>
<a id="file_a087a46c9e7f5cb0f783587362084f3dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#file_a087a46c9e7f5cb0f783587362084f3dd">&#9670;&nbsp;</a></span>ResolveExternal()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ResolveExternal </td>
          <td>(</td>
          <td class="paramtype">const char *const&#160;</td>
          <td class="paramname"><em>solver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;&#160;</td>
          <td class="paramname"><em>Cache</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int const&#160;</td>
          <td class="paramname"><em>flags</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classOpProgress.xhtml">OpProgress</a> *&#160;</td>
          <td class="paramname"><em>Progress</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>call an external resolver to handle the request </p>
<p>This method wraps all the methods above to call an external solver</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">solver</td><td>to execute </td></tr>
    <tr><td class="paramname">Cache</td><td>with the problem and as universe to work in </td></tr>
    <tr><td class="paramname">flags</td><td>effecting the request documented in #EDSP::Request::Flags </td></tr>
    <tr><td class="paramname">Progress</td><td>is an instance to report progress to</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the solver has successfully solved the problem, otherwise false </dd></dl>

<p class="reference">References <a class="el" href="edsp_8h.xhtml#a087a46c9e7f5cb0f783587362084f3dd">EDSP::ResolveExternal()</a>.</p>

<p class="reference">Referenced by <a class="el" href="edsp_8h.xhtml#a087a46c9e7f5cb0f783587362084f3dd">EDSP::ResolveExternal()</a>.</p>

</div>
</div>
<a id="file_afea09dd2038b9f81c2f25ba43455c736"></a>
<h2 class="memtitle"><span class="permalink"><a href="#file_afea09dd2038b9f81c2f25ba43455c736">&#9670;&nbsp;</a></span>WriteError()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool WriteError </td>
          <td>(</td>
          <td class="paramtype">char const *const&#160;</td>
          <td class="paramname"><em>uuid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::string const &amp;&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classFileFd.xhtml">FileFd</a> &amp;&#160;</td>
          <td class="paramname"><em>output</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>sends an error report </p>
<p>Solvers are expected to execute successfully even if they were unable to calculate a solution for a given task. Obviously they can't send a solution through, so this methods deals with formatting an error message correctly so that the front-ends can receive and display it.</p>
<p>The first line of the message should be a short description of the error so it can be used for dialog titles or alike</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">uuid</td><td>of this error message </td></tr>
    <tr><td class="paramname">message</td><td>is free form text to describe the error </td></tr>
    <tr><td class="paramname">output</td><td>the front-end listens for error messages </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="file_abd6275c5c4a7742034f514cba5f6d925"></a>
<h2 class="memtitle"><span class="permalink"><a href="#file_abd6275c5c4a7742034f514cba5f6d925">&#9670;&nbsp;</a></span>WriteLimitedScenario()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool WriteLimitedScenario </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;&#160;</td>
          <td class="paramname"><em>Cache</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classFileFd.xhtml">FileFd</a> &amp;&#160;</td>
          <td class="paramname"><em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; bool &gt; const &amp;&#160;</td>
          <td class="paramname"><em>pkgset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classOpProgress.xhtml">OpProgress</a> *&#160;</td>
          <td class="paramname"><em>Progress</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>creates a limited scenario representing the package universe </p>
<p>This method works similar to #WriteScenario as it works in the same way but doesn't send the complete universe to the solver but only packages included in the pkgset which will have only dependencies on packages which are in the given set. All other dependencies will be removed, so that this method can be used to create testcases</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Cache</td><td>is the known package universe </td></tr>
    <tr><td class="paramname">output</td><td>is written to this "file" </td></tr>
    <tr><td class="paramname">pkgset</td><td>is a set of packages the universe should be limited to </td></tr>
    <tr><td class="paramname">Progress</td><td>is an instance to report progress to</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if universe was composed successfully, otherwise false </dd></dl>

</div>
</div>
<a id="file_abe9b58f25ca04a394b4778fec617f332"></a>
<h2 class="memtitle"><span class="permalink"><a href="#file_abe9b58f25ca04a394b4778fec617f332">&#9670;&nbsp;</a></span>WriteProgress()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool WriteProgress </td>
          <td>(</td>
          <td class="paramtype">unsigned short const&#160;</td>
          <td class="paramname"><em>percent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *const&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classFileFd.xhtml">FileFd</a> &amp;&#160;</td>
          <td class="paramname"><em>output</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>sends a progress report </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">percent</td><td>of the solving completed </td></tr>
    <tr><td class="paramname">message</td><td>the solver wants the user to see </td></tr>
    <tr><td class="paramname">output</td><td>the front-end listens for progress report </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="file_a144edc83084c05f03beb8184315eeb72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#file_a144edc83084c05f03beb8184315eeb72">&#9670;&nbsp;</a></span>WriteRequest()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool WriteRequest </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;&#160;</td>
          <td class="paramname"><em>Cache</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classFileFd.xhtml">FileFd</a> &amp;&#160;</td>
          <td class="paramname"><em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int const&#160;</td>
          <td class="paramname"><em>flags</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classOpProgress.xhtml">OpProgress</a> *&#160;</td>
          <td class="paramname"><em>Progress</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>creates the EDSP request stanza </p>
<p>In the EDSP protocol the first thing send to the resolver is a stanza encoding the request. This method will write this stanza by looking at the given Cache and requests the installation of all packages which were marked for installation in it (equally for remove).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Cache</td><td>in which the request is encoded </td></tr>
    <tr><td class="paramname">output</td><td>is written to this "file" </td></tr>
    <tr><td class="paramname">flags</td><td>effecting the request documented in #EDSP::Request::Flags </td></tr>
    <tr><td class="paramname">Progress</td><td>is an instance to report progress to</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if request was composed successfully, otherwise false </dd></dl>

</div>
</div>
<a id="file_ace8dc6f317e5f58ba8005f190d707230"></a>
<h2 class="memtitle"><span class="permalink"><a href="#file_ace8dc6f317e5f58ba8005f190d707230">&#9670;&nbsp;</a></span>WriteScenario()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool WriteScenario </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpkgDepCache.xhtml">pkgDepCache</a> &amp;&#160;</td>
          <td class="paramname"><em>Cache</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classFileFd.xhtml">FileFd</a> &amp;&#160;</td>
          <td class="paramname"><em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classOpProgress.xhtml">OpProgress</a> *&#160;</td>
          <td class="paramname"><em>Progress</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>creates the scenario representing the package universe </p>
<p>After the request all known information about a package are send to the solver. The output looks similar to a Packages or status file</p>
<p>All packages and version included in this Cache are send, even if it doesn't make sense from an APT resolver point of view like versions with a negative pin to enable the solver to propose even that as a solution or at least to be able to give a hint what can be done to satisfy a request.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Cache</td><td>is the known package universe </td></tr>
    <tr><td class="paramname">output</td><td>is written to this "file" </td></tr>
    <tr><td class="paramname">Progress</td><td>is an instance to report progress to</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if universe was composed successfully, otherwise false </dd></dl>

</div>
</div>
<a id="file_a6b61a4b0c46fe5785533169e864d0478"></a>
<h2 class="memtitle"><span class="permalink"><a href="#file_a6b61a4b0c46fe5785533169e864d0478">&#9670;&nbsp;</a></span>WriteSolutionStanza()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool WriteSolutionStanza </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classFileFd.xhtml">FileFd</a> &amp;&#160;</td>
          <td class="paramname"><em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char const *const&#160;</td>
          <td class="paramname"><em>Type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpkgCache_1_1VerIterator.xhtml">pkgCache::VerIterator</a> const &amp;&#160;</td>
          <td class="paramname"><em>Ver</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>formats a solution stanza for the given version </p>
<p>EDSP uses a simple format for reporting solutions: A single required field name with an ID as value. Additional fields might appear as debug aids.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">output</td><td>to write the stanza forming the solution to </td></tr>
    <tr><td class="paramname">Type</td><td>of the stanza, used as field name </td></tr>
    <tr><td class="paramname">Ver</td><td>this stanza applies to</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if stanza could be written, otherwise false </dd></dl>

<p class="reference">References <a class="el" href="edsp_8h.xhtml#a6b61a4b0c46fe5785533169e864d0478">EDSP::WriteSolutionStanza()</a>.</p>

<p class="reference">Referenced by <a class="el" href="edsp_8h.xhtml#a6b61a4b0c46fe5785533169e864d0478">EDSP::WriteSolutionStanza()</a>.</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>