<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.15"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libzypp: zypp/PluginFrame.cc Source File</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="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(initResizable); /* @license-end */</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">libzypp  <span id="projectnumber">17.9.0</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.15 --> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(function() { initMenu('',false,false,'search.php','Search'); }); /* @license-end */</script> <div id="main-nav"></div> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function(){initNavTree('PluginFrame_8cc_source.html','');}); /* @license-end */ </script> <div id="doc-content"> <div class="header"> <div class="headertitle"> <div class="title">PluginFrame.cc</div> </div> </div><!--header--> <div class="contents"> <a href="PluginFrame_8cc.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*---------------------------------------------------------------------\</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">| ____ _ __ __ ___ |</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">| |__ / \ / / . \ . \ |</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">| / / \ V /| _/ _/ |</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">| / /__ | | | | | | |</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">| /_____||_| |_| |_| |</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">| |</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">\---------------------------------------------------------------------*/</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <iostream></span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="LogTools_8h.html">zypp/base/LogTools.h</a>"</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="String_8h.html">zypp/base/String.h</a>"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="PluginFrame_8h.html">zypp/PluginFrame.h</a>"</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">using</span> std::endl;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#undef ZYPP_BASE_LOGGER_LOGGROUP</span></div><div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="PluginFrame_8cc.html#ad11ca1dc9757eafa29e9de2259388ff4"> 21</a></span> <span class="preprocessor">#define ZYPP_BASE_LOGGER_LOGGROUP "zypp::plugin"</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="namespacezypp.html">zypp</a></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> { </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="comment">//</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="comment">// CLASS NAME : PluginFrame::Impl</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="comment">//</span></div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html"> 32</a></span> <span class="comment"></span> <span class="keyword">struct </span><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html">PluginFrame::Impl</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a5390a5b3a1af39e2da64f02a9a9adabd"> 35</a></span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a5390a5b3a1af39e2da64f02a9a9adabd">Impl</a>()</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  {}</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a7a2aa4c77c77f2190ca7f05f58657be4"> 38</a></span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a7a2aa4c77c77f2190ca7f05f58657be4">Impl</a>( <span class="keyword">const</span> std::string & command_r )</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  { <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a170883912ebd53ff80d4cbc2ed873edd">setCommand</a>( command_r ); }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#aef820b7435a770cd631ec4cc20e148e4"> 41</a></span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#aef820b7435a770cd631ec4cc20e148e4">Impl</a>( <span class="keyword">const</span> std::string & command_r, <span class="keyword">const</span> std::string & body_r )</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  : <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a0751b0a230b18ccbdaa1e583a7535599">_body</a>( body_r )</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  { <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a170883912ebd53ff80d4cbc2ed873edd">setCommand</a>( command_r ); }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a1ab72481c7b5b474e730d7cee627a101"> 45</a></span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a1ab72481c7b5b474e730d7cee627a101">Impl</a>( <span class="keyword">const</span> std::string & command_r, <a class="code" href="classzypp_1_1PluginFrame.html#a09fe2c6c79d5e8b820f410c05174cc13">HeaderInitializerList</a> contents_r )</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  { <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a170883912ebd53ff80d4cbc2ed873edd">setCommand</a>( command_r ); <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#abb692a04d15dff5017b966ee1e13fa22">addHeader</a>( contents_r ); }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#abf2ccb495a176d51f2eb2bc1ea5cc226"> 48</a></span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#abf2ccb495a176d51f2eb2bc1ea5cc226">Impl</a>( <span class="keyword">const</span> std::string & command_r, <span class="keyword">const</span> std::string & body_r, <a class="code" href="classzypp_1_1PluginFrame.html#a09fe2c6c79d5e8b820f410c05174cc13">HeaderInitializerList</a> contents_r )</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  : <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a0751b0a230b18ccbdaa1e583a7535599">_body</a>( body_r )</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  { <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a170883912ebd53ff80d4cbc2ed873edd">setCommand</a>( command_r ); <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#abb692a04d15dff5017b966ee1e13fa22">addHeader</a>( contents_r ); }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a5390a5b3a1af39e2da64f02a9a9adabd">Impl</a>( std::istream & stream_r );</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#aad8c5bfbeb50eac6dd790c5195394f8d"> 55</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#aad8c5bfbeb50eac6dd790c5195394f8d">empty</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a3bf5f454060e3a8e547eb7c89f34c828">_command</a>.empty() && <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a0751b0a230b18ccbdaa1e583a7535599">_body</a>.empty(); }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a29858e78acde6f3fec60d8891f353681"> 58</a></span>  <span class="keyword">const</span> std::string & <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a29858e78acde6f3fec60d8891f353681">command</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a3bf5f454060e3a8e547eb7c89f34c828">_command</a>; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a170883912ebd53ff80d4cbc2ed873edd"> 61</a></span>  <span class="keywordtype">void</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a170883912ebd53ff80d4cbc2ed873edd">setCommand</a>( <span class="keyword">const</span> std::string & command_r )</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">if</span> ( command_r.find( <span class="charliteral">'\n'</span> ) != std::string::npos )</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1PluginFrameException.html">PluginFrameException</a>( <span class="stringliteral">"Multiline command"</span>, command_r ) );</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a3bf5f454060e3a8e547eb7c89f34c828">_command</a> = command_r;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a4e66485247e71809218912d940c262c2"> 68</a></span>  <span class="keyword">const</span> std::string & <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a4e66485247e71809218912d940c262c2">body</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a0751b0a230b18ccbdaa1e583a7535599">_body</a>; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#ab0169793be9e6b663b84b8bdafc2e44a"> 71</a></span>  std::string & <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#ab0169793be9e6b663b84b8bdafc2e44a">bodyRef</a>()</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  { <span class="keywordflow">return</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a0751b0a230b18ccbdaa1e583a7535599">_body</a>; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a96cfcb33f41308f9063f93e7b9127082"> 74</a></span>  <span class="keywordtype">void</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a96cfcb33f41308f9063f93e7b9127082">setBody</a>( <span class="keyword">const</span> std::string & body_r )</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  { <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a0751b0a230b18ccbdaa1e583a7535599">_body</a> = body_r; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a9ebeea54034700b182489900ce7ab171"> 78</a></span>  <span class="keyword">typedef</span> std::pair<HeaderListIterator,HeaderListIterator> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a9ebeea54034700b182489900ce7ab171">constKeyRange</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#aab3f8ee81c37ca4beb020602af9a68eb"> 79</a></span>  <span class="keyword">typedef</span> std::pair<HeaderList::iterator,HeaderList::iterator> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#aab3f8ee81c37ca4beb020602af9a68eb">KeyRange</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a9f40dee988284b7dc031e94d7d74b3f1"> 81</a></span>  <a class="code" href="classzypp_1_1PluginFrame.html#aada34762e4bc66fab2612fb00dfa992f">HeaderList</a> & <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a9f40dee988284b7dc031e94d7d74b3f1">headerList</a>()</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  { <span class="keywordflow">return</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a30fca2b2ddbd46e666a94efd5bf25eb1">_header</a>; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#ae1f86681773a488bcf04f3087200d9bb"> 84</a></span>  <span class="keyword">const</span> <a class="code" href="classzypp_1_1PluginFrame.html#aada34762e4bc66fab2612fb00dfa992f">HeaderList</a> & <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#ae1f86681773a488bcf04f3087200d9bb">headerList</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a30fca2b2ddbd46e666a94efd5bf25eb1">_header</a>; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#aa99d01b049fca7be2ee92581febb6763"> 87</a></span>  <span class="keyword">const</span> std::string & <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#aa99d01b049fca7be2ee92581febb6763">getHeader</a>( <span class="keyword">const</span> std::string & key_r )<span class="keyword"> const</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a9ebeea54034700b182489900ce7ab171">constKeyRange</a> r( <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a30fca2b2ddbd46e666a94efd5bf25eb1">_header</a>.equal_range( key_r ) );</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">if</span> ( r.first == r.second )</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1PluginFrameException.html">PluginFrameException</a>( <span class="stringliteral">"No value for key"</span>, key_r ) );</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keyword">const</span> std::string & ret( r.first->second );</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">if</span> ( ++r.first != r.second )</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1PluginFrameException.html">PluginFrameException</a>( <span class="stringliteral">"Multiple values for key"</span>, key_r ) );</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a15e3a71c725a6e14b4de67641736aa4d"> 98</a></span>  <span class="keyword">const</span> std::string & <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a15e3a71c725a6e14b4de67641736aa4d">getHeader</a>( <span class="keyword">const</span> std::string & key_r, <span class="keyword">const</span> std::string & default_r )<span class="keyword"> const</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a9ebeea54034700b182489900ce7ab171">constKeyRange</a> r( <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a30fca2b2ddbd46e666a94efd5bf25eb1">_header</a>.equal_range( key_r ) );</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">if</span> ( r.first == r.second )</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">return</span> default_r;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keyword">const</span> std::string & ret( r.first->second );</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">if</span> ( ++r.first != r.second )</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1PluginFrameException.html">PluginFrameException</a>( <span class="stringliteral">"Multiple values for key"</span>, key_r ) );</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a5f8168a186240dac3aa2e83d60545e37"> 109</a></span>  <span class="keyword">const</span> std::string & <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a5f8168a186240dac3aa2e83d60545e37">getHeaderNT</a>( <span class="keyword">const</span> std::string & key_r, <span class="keyword">const</span> std::string & default_r )<span class="keyword"> const</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="classzypp_1_1PluginFrame.html#a5164fac8f6aaa3ab239c23aa22025287">HeaderListIterator</a> iter( <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a30fca2b2ddbd46e666a94efd5bf25eb1">_header</a>.find( key_r ) );</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> iter != <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a30fca2b2ddbd46e666a94efd5bf25eb1">_header</a>.end() ? iter->second : default_r;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#ae3bd62fc4d3d1d948b10d9278bfe7d2d"> 115</a></span>  HeaderList::value_type <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#ae3bd62fc4d3d1d948b10d9278bfe7d2d">mkHeaderPair</a>( <span class="keyword">const</span> std::string & key_r, <span class="keyword">const</span> std::string & value_r )</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">if</span> ( key_r.find_first_of( <span class="stringliteral">":\n"</span> ) != std::string::npos )</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1PluginFrameException.html">PluginFrameException</a>( <span class="stringliteral">"Illegal char in header key"</span>, key_r ) );</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">if</span> ( value_r.find_first_of( <span class="stringliteral">"\n"</span> ) != std::string::npos )</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1PluginFrameException.html">PluginFrameException</a>( <span class="stringliteral">"Illegal char in header value"</span>, value_r ) );</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">return</span> HeaderList::value_type( key_r, value_r );</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#ab2b6572d7eb7272c34ba7ee71eb08334"> 124</a></span>  <span class="keywordtype">void</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#ab2b6572d7eb7272c34ba7ee71eb08334">setHeader</a>( <span class="keyword">const</span> std::string & key_r, <span class="keyword">const</span> std::string & value_r )</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#ab7d196b41f4c443ed1e0197633b73ed9">clearHeader</a>( key_r );</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#abb692a04d15dff5017b966ee1e13fa22">addHeader</a>( key_r, value_r );</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#abb692a04d15dff5017b966ee1e13fa22"> 130</a></span>  <span class="keywordtype">void</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#abb692a04d15dff5017b966ee1e13fa22">addHeader</a>( <span class="keyword">const</span> std::string & key_r, <span class="keyword">const</span> std::string & value_r )</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a30fca2b2ddbd46e666a94efd5bf25eb1">_header</a>.insert( <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#ae3bd62fc4d3d1d948b10d9278bfe7d2d">mkHeaderPair</a>( key_r, value_r ) );</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#ae297a9183e03f0eaedb11520dfef6599"> 135</a></span>  <span class="keywordtype">void</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#ae297a9183e03f0eaedb11520dfef6599">addHeader</a>( <a class="code" href="classzypp_1_1PluginFrame.html#a09fe2c6c79d5e8b820f410c05174cc13">HeaderInitializerList</a> contents_r )</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">for</span> ( <span class="keyword">const</span> <span class="keyword">auto</span> & el : contents_r )</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#abb692a04d15dff5017b966ee1e13fa22">addHeader</a>( el.first, el.second );</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#ab7d196b41f4c443ed1e0197633b73ed9"> 141</a></span>  <span class="keywordtype">void</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#ab7d196b41f4c443ed1e0197633b73ed9">clearHeader</a>( <span class="keyword">const</span> std::string & key_r )</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a30fca2b2ddbd46e666a94efd5bf25eb1">_header</a>.erase( key_r );</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  std::ostream & <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a06c88bc9835f6c1b1c6bf263fbb9a475">writeTo</a>( std::ostream & stream_r ) <span class="keyword">const</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a3bf5f454060e3a8e547eb7c89f34c828"> 150</a></span>  std::string <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a3bf5f454060e3a8e547eb7c89f34c828">_command</a>;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a0751b0a230b18ccbdaa1e583a7535599"> 151</a></span>  std::string <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a0751b0a230b18ccbdaa1e583a7535599">_body</a>;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a30fca2b2ddbd46e666a94efd5bf25eb1"> 152</a></span>  <a class="code" href="classzypp_1_1PluginFrame.html#aada34762e4bc66fab2612fb00dfa992f">HeaderList</a> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a30fca2b2ddbd46e666a94efd5bf25eb1">_header</a>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#aff295000ccad860c454daafcfe77db11"> 156</a></span>  <span class="keyword">static</span> shared_ptr<Impl> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#aff295000ccad860c454daafcfe77db11">nullimpl</a>()</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keyword">static</span> shared_ptr<Impl> _nullimpl( <span class="keyword">new</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html">Impl</a> );</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> _nullimpl;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keyword">friend</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html">Impl</a> * rwcowClone<Impl>( <span class="keyword">const</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html">Impl</a> * rhs );</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#ab379ab08c91dab542d25bb54da2d11af"> 164</a></span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html">Impl</a> * <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#ab379ab08c91dab542d25bb54da2d11af">clone</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keyword"> </span>{ <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a5390a5b3a1af39e2da64f02a9a9adabd">Impl</a>( *<span class="keyword">this</span> ); }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  };</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#af8fdc0a73fc3ed581c4d6b63f50dc3f0"> 170</a></span>  <span class="keyword">inline</span> std::ostream & <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#af8fdc0a73fc3ed581c4d6b63f50dc3f0">operator<<</a>( std::ostream & <a class="code" href="namespacestr.html">str</a>, <span class="keyword">const</span> <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html">PluginFrame::Impl</a> & obj )</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">return</span> <a class="code" href="namespacestr.html">str</a> << <span class="stringliteral">"PluginFrame["</span> << obj.<a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a29858e78acde6f3fec60d8891f353681">command</a>() << <span class="stringliteral">"]("</span> << obj.<a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a9f40dee988284b7dc031e94d7d74b3f1">headerList</a>().size() << <span class="stringliteral">"){"</span> << obj.<a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a4e66485247e71809218912d940c262c2">body</a>().size() << <span class="stringliteral">"}"</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a946f87278a9a71fff5560cad1375f503"> 175</a></span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a5390a5b3a1af39e2da64f02a9a9adabd">PluginFrame::Impl::Impl</a>( std::istream & stream_r )</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="comment">//DBG << "Parse from " << stream_r << endl;</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">if</span> ( ! stream_r )</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1PluginFrameException.html">PluginFrameException</a>( <span class="stringliteral">"Bad Stream"</span> ) );</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="comment">// JFYI: stream status after getline():</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="comment">// Bool | Bits</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// ------|---------------</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="comment">// true | [g___] >FOO< : FOO line was \n-terminated</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="comment">// true | [_e__] >BAA< : BAA before EOF, but not \n-terminated</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="comment">// false | [_eF_] >< : No valid data to consume</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="comment">//command</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a3bf5f454060e3a8e547eb7c89f34c828">_command</a> = <a class="code" href="namespacezypp_1_1str.html#a65082648364fa4015d6f92fc7892ed84">str::getline</a>( stream_r );</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">if</span> ( ! stream_r.good() )</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1PluginFrameException.html">PluginFrameException</a>( <span class="stringliteral">"Missing NL after command"</span> ) );</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="comment">// header</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">do</span> {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  std::string data = <a class="code" href="namespacezypp_1_1str.html#a65082648364fa4015d6f92fc7892ed84">str::getline</a>( stream_r );</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">if</span> ( ! stream_r.good() )</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1PluginFrameException.html">PluginFrameException</a>( <span class="stringliteral">"Missing NL after header"</span> ) );</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">if</span> ( data.empty() )</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">break</span>; <span class="comment">// --> empty line sep. header and body</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="namespacezypp_1_1sat_1_1detail.html#ac0d3ca93132eee14b022898f23b49d07">std::string::size_type</a> sep( data.find( <span class="charliteral">':'</span>) );</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">if</span> ( sep == std::string::npos )</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1PluginFrameException.html">PluginFrameException</a>( <span class="stringliteral">"Missing colon in header"</span> ) );</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a30fca2b2ddbd46e666a94efd5bf25eb1">_header</a>.insert( HeaderList::value_type( data.substr(0,sep), data.substr(sep+1) ) );</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  } <span class="keywordflow">while</span> ( <span class="keyword">true</span> );</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="comment">// data</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a0751b0a230b18ccbdaa1e583a7535599">_body</a> = <a class="code" href="namespacezypp_1_1str.html#a7116cde967828e981894ee7caad38d3e">str::receiveUpTo</a>( stream_r, <span class="charliteral">'\0'</span> );</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">if</span> ( ! stream_r.good() )</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1PluginFrameException.html">PluginFrameException</a>( <span class="stringliteral">"Missing NUL after body"</span> ) );</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="structzypp_1_1PluginFrame_1_1Impl.html#a06c88bc9835f6c1b1c6bf263fbb9a475"> 215</a></span>  std::ostream & <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a06c88bc9835f6c1b1c6bf263fbb9a475">PluginFrame::Impl::writeTo</a>( std::ostream & stream_r )<span class="keyword"> const</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="comment">//DBG << "Write " << *this << " to " << stream_r << endl;</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">if</span> ( ! stream_r )</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1PluginFrameException.html">PluginFrameException</a>( <span class="stringliteral">"Bad Stream"</span> ) );</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="comment">// command</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  stream_r << _command << endl;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="comment">// header</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( it, _header.begin(), _header.end() )</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  stream_r << it->first << <span class="charliteral">':'</span> << it->second << endl;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">// body</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  stream_r << endl</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  << _body << <span class="charliteral">'\0'</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  if ( ! stream_r )</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( <a class="code" href="classzypp_1_1PluginFrameException.html">PluginFrameException</a>( <span class="stringliteral">"Write error"</span> ) );</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">return</span> stream_r;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  }</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="comment">//</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="comment">// CLASS NAME : PluginFrame</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="comment">//</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="comment"></span></div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a0ec4b412b1e475468e79ff62043e1f80"> 241</a></span>  <span class="keyword">const</span> std::string & <a class="code" href="classzypp_1_1PluginFrame.html#a0ec4b412b1e475468e79ff62043e1f80">PluginFrame::ackCommand</a>()</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keyword">static</span> std::string _val( <span class="stringliteral">"ACK"</span> );</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">return</span> _val;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#aa874d0d3f1d86e3ce160107544db9a4f"> 247</a></span>  <span class="keyword">const</span> std::string & <a class="code" href="classzypp_1_1PluginFrame.html#aa874d0d3f1d86e3ce160107544db9a4f">PluginFrame::errorCommand</a>()</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keyword">static</span> std::string _val( <span class="stringliteral">"ERROR"</span> );</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">return</span> _val;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a7e63b00a54daa9250c3e3b6e16e3765e"> 253</a></span>  <span class="keyword">const</span> std::string & <a class="code" href="classzypp_1_1PluginFrame.html#a7e63b00a54daa9250c3e3b6e16e3765e">PluginFrame::enomethodCommand</a>()</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keyword">static</span> std::string _val( <span class="stringliteral">"_ENOMETHOD"</span> );</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">return</span> _val;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a342538d21229ce819bd9fbf54c8087cc"> 259</a></span>  <a class="code" href="classzypp_1_1PluginFrame.html#a342538d21229ce819bd9fbf54c8087cc">PluginFrame::PluginFrame</a>()</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  : <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>( <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html">Impl</a>::nullimpl() )</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  {}</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a2a9c1a468f6092dd288c7d19bd930567"> 263</a></span>  <a class="code" href="classzypp_1_1PluginFrame.html#a342538d21229ce819bd9fbf54c8087cc">PluginFrame::PluginFrame</a>( <span class="keyword">const</span> std::string & command_r )</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  : _pimpl( new <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html">Impl</a>( command_r ) )</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  {}</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#ada3fcca14b33e61bfe074d15a25887d7"> 267</a></span>  <a class="code" href="classzypp_1_1PluginFrame.html#a342538d21229ce819bd9fbf54c8087cc">PluginFrame::PluginFrame</a>( <span class="keyword">const</span> std::string & command_r, <span class="keyword">const</span> std::string & body_r )</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  : _pimpl( new <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html">Impl</a>( command_r, body_r ) )</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  {}</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div><div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#aa1b39e476130051c28993730766d05c6"> 271</a></span>  <a class="code" href="classzypp_1_1PluginFrame.html#a342538d21229ce819bd9fbf54c8087cc">PluginFrame::PluginFrame</a>( <span class="keyword">const</span> std::string & command_r, <a class="code" href="classzypp_1_1PluginFrame.html#a09fe2c6c79d5e8b820f410c05174cc13">HeaderInitializerList</a> contents_r )</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  : _pimpl( new <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html">Impl</a>( command_r, contents_r ) )</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  {}</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a5eaa40fc2b467ed5a72f4a56eb358723"> 275</a></span>  <a class="code" href="classzypp_1_1PluginFrame.html#a342538d21229ce819bd9fbf54c8087cc">PluginFrame::PluginFrame</a>( <span class="keyword">const</span> std::string & command_r, <span class="keyword">const</span> std::string & body_r, <a class="code" href="classzypp_1_1PluginFrame.html#a09fe2c6c79d5e8b820f410c05174cc13">HeaderInitializerList</a> contents_r )</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  : _pimpl( new <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html">Impl</a>( command_r, body_r, contents_r ) )</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  {}</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a3bc2776d4bc095965d659dd40405bfac"> 279</a></span>  <a class="code" href="classzypp_1_1PluginFrame.html#a342538d21229ce819bd9fbf54c8087cc">PluginFrame::PluginFrame</a>( std::istream & stream_r )</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  : _pimpl( new <a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html">Impl</a>( stream_r ) )</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {}</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a7066c8b9b40e735b41352eed22675d3f"> 283</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classzypp_1_1PluginFrame.html#a7066c8b9b40e735b41352eed22675d3f">PluginFrame::empty</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#aad8c5bfbeb50eac6dd790c5195394f8d">empty</a>(); }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a9671c2fb3b1cd27635195b6519f9af92"> 286</a></span>  <span class="keyword">const</span> std::string & <a class="code" href="classzypp_1_1PluginFrame.html#a9671c2fb3b1cd27635195b6519f9af92">PluginFrame::command</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a29858e78acde6f3fec60d8891f353681">command</a>(); }</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div><div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a218d0c015a4c8a17a0cf58280a3c65cb"> 289</a></span>  <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1PluginFrame.html#a218d0c015a4c8a17a0cf58280a3c65cb">PluginFrame::setCommand</a>( <span class="keyword">const</span> std::string & command_r )</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  { <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a170883912ebd53ff80d4cbc2ed873edd">setCommand</a>( command_r ); }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a304c1ba099dd4ee15d1a0d16744b002e"> 292</a></span>  <span class="keyword">const</span> std::string & <a class="code" href="classzypp_1_1PluginFrame.html#a304c1ba099dd4ee15d1a0d16744b002e">PluginFrame::body</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a4e66485247e71809218912d940c262c2">body</a>(); }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a41d2cebe9ca0468cf408ab63dc570572"> 295</a></span>  std::string & <a class="code" href="classzypp_1_1PluginFrame.html#a41d2cebe9ca0468cf408ab63dc570572">PluginFrame::bodyRef</a>()</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  { <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#ab0169793be9e6b663b84b8bdafc2e44a">bodyRef</a>(); }</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div><div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a2f8e9117a3bed36ae95230753e14d8b6"> 298</a></span>  <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1PluginFrame.html#a2f8e9117a3bed36ae95230753e14d8b6">PluginFrame::setBody</a>( <span class="keyword">const</span> std::string & body_r )</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  { <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a96cfcb33f41308f9063f93e7b9127082">setBody</a>( body_r ); }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#afb6a945bb4f587464f83d00ce8010229"> 301</a></span>  std::ostream & <a class="code" href="classzypp_1_1PluginFrame.html#afb6a945bb4f587464f83d00ce8010229">PluginFrame::writeTo</a>( std::ostream & stream_r )<span class="keyword"> const</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a06c88bc9835f6c1b1c6bf263fbb9a475">writeTo</a>( stream_r ); }</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#ae8c758affe36494d5baadb9742dc46de"> 304</a></span>  <a class="code" href="classzypp_1_1PluginFrame.html#aada34762e4bc66fab2612fb00dfa992f">PluginFrame::HeaderList</a> & <a class="code" href="classzypp_1_1PluginFrame.html#ae8c758affe36494d5baadb9742dc46de">PluginFrame::headerList</a>()</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  { <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a9f40dee988284b7dc031e94d7d74b3f1">headerList</a>(); }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a6c563d648637c4f02f591595f1ed9a3d"> 307</a></span>  <span class="keyword">const</span> <a class="code" href="classzypp_1_1PluginFrame.html#aada34762e4bc66fab2612fb00dfa992f">PluginFrame::HeaderList</a> & <a class="code" href="classzypp_1_1PluginFrame.html#ae8c758affe36494d5baadb9742dc46de">PluginFrame::headerList</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a9f40dee988284b7dc031e94d7d74b3f1">headerList</a>(); }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div><div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#ad6e47b90b7dcf7979dfabc3054de784f"> 310</a></span>  <span class="keyword">const</span> std::string & <a class="code" href="classzypp_1_1PluginFrame.html#ad6e47b90b7dcf7979dfabc3054de784f">PluginFrame::getHeader</a>( <span class="keyword">const</span> std::string & key_r )<span class="keyword"> const</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#aa99d01b049fca7be2ee92581febb6763">getHeader</a>( key_r ); }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#ad8cc38b70b25dc30be3d77861e5a4e26"> 313</a></span>  <span class="keyword">const</span> std::string & <a class="code" href="classzypp_1_1PluginFrame.html#ad6e47b90b7dcf7979dfabc3054de784f">PluginFrame::getHeader</a>( <span class="keyword">const</span> std::string & key_r, <span class="keyword">const</span> std::string & default_r )<span class="keyword"> const</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#aa99d01b049fca7be2ee92581febb6763">getHeader</a>( key_r, default_r ); }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#aee78f91568da649c95532b04ce7bf44b"> 316</a></span>  <span class="keyword">const</span> std::string & <a class="code" href="classzypp_1_1PluginFrame.html#aee78f91568da649c95532b04ce7bf44b">PluginFrame::getHeaderNT</a>( <span class="keyword">const</span> std::string & key_r, <span class="keyword">const</span> std::string & default_r )<span class="keyword"> const</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#a5f8168a186240dac3aa2e83d60545e37">getHeaderNT</a>( key_r, default_r ); }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#aed4289b675c2d7ea203feee6049108d0"> 319</a></span>  <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1PluginFrame.html#aed4289b675c2d7ea203feee6049108d0">PluginFrame::setHeader</a>( <span class="keyword">const</span> std::string & key_r, <span class="keyword">const</span> std::string & value_r )</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  { <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#ab2b6572d7eb7272c34ba7ee71eb08334">setHeader</a>( key_r, value_r ); }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a992e348f860dd93f9504287ff1adc601"> 322</a></span>  <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1PluginFrame.html#a992e348f860dd93f9504287ff1adc601">PluginFrame::addHeader</a>( <span class="keyword">const</span> std::string & key_r, <span class="keyword">const</span> std::string & value_r )</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  { <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#abb692a04d15dff5017b966ee1e13fa22">addHeader</a>( key_r, value_r ); }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div><div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a9fb98c741aee3f8025ec2a034988211a"> 325</a></span>  <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1PluginFrame.html#a992e348f860dd93f9504287ff1adc601">PluginFrame::addHeader</a>( <a class="code" href="classzypp_1_1PluginFrame.html#a09fe2c6c79d5e8b820f410c05174cc13">HeaderInitializerList</a> contents_r )</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  { <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#abb692a04d15dff5017b966ee1e13fa22">addHeader</a>( contents_r ); }</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div><div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="classzypp_1_1PluginFrame.html#a4d93f8b447eeded4f82905188dd3b3e0"> 328</a></span>  <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1PluginFrame.html#a4d93f8b447eeded4f82905188dd3b3e0">PluginFrame::clearHeader</a>( <span class="keyword">const</span> std::string & key_r )</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  { <a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>-><a class="code" href="structzypp_1_1PluginFrame_1_1Impl.html#ab7d196b41f4c443ed1e0197633b73ed9">clearHeader</a>( key_r ); }</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="namespacezypp.html#ae8496f3d1c37da89d204b8f86acab448"> 333</a></span>  std::ostream & <a class="code" href="namespacezypp.html#a736823673697753a9826f368fefff5f0">operator<<</a>( std::ostream & <a class="code" href="namespacestr.html">str</a>, <span class="keyword">const</span> <a class="code" href="classzypp_1_1PluginFrame.html">PluginFrame</a> & obj )</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  { <span class="keywordflow">return</span> <a class="code" href="namespacestr.html">str</a> << *obj.<a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a>; }</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="namespacezypp.html#a1832dfaa8c1199576f6d61e7d4cfd516"> 336</a></span>  <span class="keywordtype">bool</span> <a class="code" href="namespacezypp.html#a387264e1b3da7cf7555c490c322696e0">operator==</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1PluginFrame.html">PluginFrame</a> & lhs, <span class="keyword">const</span> <a class="code" href="classzypp_1_1PluginFrame.html">PluginFrame</a> & rhs )</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordflow">return</span> ( lhs.<a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a> == rhs.<a class="code" href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">_pimpl</a> )</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  || (( lhs.<a class="code" href="classzypp_1_1PluginFrame.html#a9671c2fb3b1cd27635195b6519f9af92">command</a>() == rhs.<a class="code" href="classzypp_1_1PluginFrame.html#a9671c2fb3b1cd27635195b6519f9af92">command</a>() ) && ( lhs.<a class="code" href="classzypp_1_1PluginFrame.html#ae8c758affe36494d5baadb9742dc46de">headerList</a>() == rhs.<a class="code" href="classzypp_1_1PluginFrame.html#ae8c758affe36494d5baadb9742dc46de">headerList</a>() ) && ( lhs.<a class="code" href="classzypp_1_1PluginFrame.html#a304c1ba099dd4ee15d1a0d16744b002e">body</a>() == rhs.<a class="code" href="classzypp_1_1PluginFrame.html#a304c1ba099dd4ee15d1a0d16744b002e">body</a>() ));</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> } <span class="comment">// namespace zypp</span></div><div class="ttc" id="classzypp_1_1PluginFrame_html_afb6a945bb4f587464f83d00ce8010229"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#afb6a945bb4f587464f83d00ce8010229">zypp::PluginFrame::writeTo</a></div><div class="ttdeci">std::ostream & writeTo(std::ostream &stream_r) const</div><div class="ttdoc">Write frame to stream.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00301">PluginFrame.cc:301</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_a342538d21229ce819bd9fbf54c8087cc"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#a342538d21229ce819bd9fbf54c8087cc">zypp::PluginFrame::PluginFrame</a></div><div class="ttdeci">PluginFrame()</div><div class="ttdoc">Default ctor (empty frame)</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00259">PluginFrame.cc:259</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_aff295000ccad860c454daafcfe77db11"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#aff295000ccad860c454daafcfe77db11">zypp::PluginFrame::Impl::nullimpl</a></div><div class="ttdeci">static shared_ptr< Impl > nullimpl()</div><div class="ttdoc">Offer default Impl.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00156">PluginFrame.cc:156</a></div></div> <div class="ttc" id="group__ZYPP__THROW_html_gaf8c3a87d63dd4f26f059eddd62c22864"><div class="ttname"><a href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a></div><div class="ttdeci">#define ZYPP_THROW(EXCPT)</div><div class="ttdoc">Drops a logline and throws the Exception.</div><div class="ttdef"><b>Definition:</b> <a href="Exception_8h_source.html#l00392">Exception.h:392</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html"><div class="ttname"><a href="classzypp_1_1PluginFrame.html">zypp::PluginFrame</a></div><div class="ttdoc">Command frame for communication with PluginScript.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8h_source.html#l00040">PluginFrame.h:40</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_a0751b0a230b18ccbdaa1e583a7535599"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#a0751b0a230b18ccbdaa1e583a7535599">zypp::PluginFrame::Impl::_body</a></div><div class="ttdeci">std::string _body</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00151">PluginFrame.cc:151</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_a5390a5b3a1af39e2da64f02a9a9adabd"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#a5390a5b3a1af39e2da64f02a9a9adabd">zypp::PluginFrame::Impl::Impl</a></div><div class="ttdeci">Impl()</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00035">PluginFrame.cc:35</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_a218d0c015a4c8a17a0cf58280a3c65cb"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#a218d0c015a4c8a17a0cf58280a3c65cb">zypp::PluginFrame::setCommand</a></div><div class="ttdeci">void setCommand(const std::string &command_r)</div><div class="ttdoc">Set the frame command.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00289">PluginFrame.cc:289</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_a9671c2fb3b1cd27635195b6519f9af92"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#a9671c2fb3b1cd27635195b6519f9af92">zypp::PluginFrame::command</a></div><div class="ttdeci">const std::string & command() const</div><div class="ttdoc">Return the frame command.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00286">PluginFrame.cc:286</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_ab7d196b41f4c443ed1e0197633b73ed9"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#ab7d196b41f4c443ed1e0197633b73ed9">zypp::PluginFrame::Impl::clearHeader</a></div><div class="ttdeci">void clearHeader(const std::string &key_r)</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00141">PluginFrame.cc:141</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_aee78f91568da649c95532b04ce7bf44b"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#aee78f91568da649c95532b04ce7bf44b">zypp::PluginFrame::getHeaderNT</a></div><div class="ttdeci">const std::string & getHeaderNT(const std::string &key_r, const std::string &default_r=std::string()) const</div><div class="ttdoc">Not throwing version returing one of the matching header values or default_r string.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00316">PluginFrame.cc:316</a></div></div> <div class="ttc" id="namespacestr_html"><div class="ttname"><a href="namespacestr.html">str</a></div><div class="ttdoc">String related utilities and Regular expression matching.</div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_aef820b7435a770cd631ec4cc20e148e4"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#aef820b7435a770cd631ec4cc20e148e4">zypp::PluginFrame::Impl::Impl</a></div><div class="ttdeci">Impl(const std::string &command_r, const std::string &body_r)</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00041">PluginFrame.cc:41</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_a7066c8b9b40e735b41352eed22675d3f"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#a7066c8b9b40e735b41352eed22675d3f">zypp::PluginFrame::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdoc">Whether this is an empty frame.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00283">PluginFrame.cc:283</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_a7a2aa4c77c77f2190ca7f05f58657be4"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#a7a2aa4c77c77f2190ca7f05f58657be4">zypp::PluginFrame::Impl::Impl</a></div><div class="ttdeci">Impl(const std::string &command_r)</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00038">PluginFrame.cc:38</a></div></div> <div class="ttc" id="Easy_8h_html_a7887338b8a0727becb37d8061fcbfc0e"><div class="ttname"><a href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a></div><div class="ttdeci">#define for_(IT, BEG, END)</div><div class="ttdoc">Convenient for-loops using iterator.</div><div class="ttdef"><b>Definition:</b> <a href="Easy_8h_source.html#l00027">Easy.h:27</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_a992e348f860dd93f9504287ff1adc601"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#a992e348f860dd93f9504287ff1adc601">zypp::PluginFrame::addHeader</a></div><div class="ttdeci">void addHeader(const std::string &key_r, const std::string &value_r=std::string())</div><div class="ttdoc">Add header for key_r leaving already existing headers for key_r unchanged.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00322">PluginFrame.cc:322</a></div></div> <div class="ttc" id="namespacezypp_html_a387264e1b3da7cf7555c490c322696e0"><div class="ttname"><a href="namespacezypp.html#a387264e1b3da7cf7555c490c322696e0">zypp::operator==</a></div><div class="ttdeci">bool operator==(const SetRelation::Enum &lhs, const SetCompare &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SetRelationMixin_8h_source.html#l00084">SetRelationMixin.h:84</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_a3bf5f454060e3a8e547eb7c89f34c828"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#a3bf5f454060e3a8e547eb7c89f34c828">zypp::PluginFrame::Impl::_command</a></div><div class="ttdeci">std::string _command</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00150">PluginFrame.cc:150</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_aa874d0d3f1d86e3ce160107544db9a4f"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#aa874d0d3f1d86e3ce160107544db9a4f">zypp::PluginFrame::errorCommand</a></div><div class="ttdeci">static const std::string & errorCommand()</div><div class="ttdoc">"ERROR" command.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00247">PluginFrame.cc:247</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_a170883912ebd53ff80d4cbc2ed873edd"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#a170883912ebd53ff80d4cbc2ed873edd">zypp::PluginFrame::Impl::setCommand</a></div><div class="ttdeci">void setCommand(const std::string &command_r)</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00061">PluginFrame.cc:61</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_a15e3a71c725a6e14b4de67641736aa4d"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#a15e3a71c725a6e14b4de67641736aa4d">zypp::PluginFrame::Impl::getHeader</a></div><div class="ttdeci">const std::string & getHeader(const std::string &key_r, const std::string &default_r) const</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00098">PluginFrame.cc:98</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_a06c88bc9835f6c1b1c6bf263fbb9a475"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#a06c88bc9835f6c1b1c6bf263fbb9a475">zypp::PluginFrame::Impl::writeTo</a></div><div class="ttdeci">std::ostream & writeTo(std::ostream &stream_r) const</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00215">PluginFrame.cc:215</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_abf2ccb495a176d51f2eb2bc1ea5cc226"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#abf2ccb495a176d51f2eb2bc1ea5cc226">zypp::PluginFrame::Impl::Impl</a></div><div class="ttdeci">Impl(const std::string &command_r, const std::string &body_r, HeaderInitializerList contents_r)</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00048">PluginFrame.cc:48</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_a9ebeea54034700b182489900ce7ab171"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#a9ebeea54034700b182489900ce7ab171">zypp::PluginFrame::Impl::constKeyRange</a></div><div class="ttdeci">std::pair< HeaderListIterator, HeaderListIterator > constKeyRange</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00078">PluginFrame.cc:78</a></div></div> <div class="ttc" id="namespacezypp_html_a736823673697753a9826f368fefff5f0"><div class="ttname"><a href="namespacezypp.html#a736823673697753a9826f368fefff5f0">zypp::operator<<</a></div><div class="ttdeci">std::ostream & operator<<(std::ostream &str, const Exception &obj)</div><div class="ttdef"><b>Definition:</b> <a href="Exception_8cc_source.html#l00147">Exception.cc:147</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_a7e63b00a54daa9250c3e3b6e16e3765e"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#a7e63b00a54daa9250c3e3b6e16e3765e">zypp::PluginFrame::enomethodCommand</a></div><div class="ttdeci">static const std::string & enomethodCommand()</div><div class="ttdoc">"_ENOMETHOD" command.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00253">PluginFrame.cc:253</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_ae297a9183e03f0eaedb11520dfef6599"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#ae297a9183e03f0eaedb11520dfef6599">zypp::PluginFrame::Impl::addHeader</a></div><div class="ttdeci">void addHeader(HeaderInitializerList contents_r)</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00135">PluginFrame.cc:135</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_a304c1ba099dd4ee15d1a0d16744b002e"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#a304c1ba099dd4ee15d1a0d16744b002e">zypp::PluginFrame::body</a></div><div class="ttdeci">const std::string & body() const</div><div class="ttdoc">Return the frame body.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00292">PluginFrame.cc:292</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrameException_html"><div class="ttname"><a href="classzypp_1_1PluginFrameException.html">zypp::PluginFrameException</a></div><div class="ttdoc">Base class for PluginFrame Exception.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrameException_8h_source.html#l00029">PluginFrameException.h:29</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_a09fe2c6c79d5e8b820f410c05174cc13"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#a09fe2c6c79d5e8b820f410c05174cc13">zypp::PluginFrame::HeaderInitializerList</a></div><div class="ttdeci">const std::initializer_list< std::pair< std::string, std::string > > & HeaderInitializerList</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8h_source.html#l00045">PluginFrame.h:45</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_aab3f8ee81c37ca4beb020602af9a68eb"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#aab3f8ee81c37ca4beb020602af9a68eb">zypp::PluginFrame::Impl::KeyRange</a></div><div class="ttdeci">std::pair< HeaderList::iterator, HeaderList::iterator > KeyRange</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00079">PluginFrame.cc:79</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_a1ab72481c7b5b474e730d7cee627a101"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#a1ab72481c7b5b474e730d7cee627a101">zypp::PluginFrame::Impl::Impl</a></div><div class="ttdeci">Impl(const std::string &command_r, HeaderInitializerList contents_r)</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00045">PluginFrame.cc:45</a></div></div> <div class="ttc" id="namespacezypp_1_1str_html_a65082648364fa4015d6f92fc7892ed84"><div class="ttname"><a href="namespacezypp_1_1str.html#a65082648364fa4015d6f92fc7892ed84">zypp::str::getline</a></div><div class="ttdeci">std::string getline(std::istream &str, const Trim trim_r)</div><div class="ttdoc">Return stream content up to (but not returning) the next newline.</div><div class="ttdef"><b>Definition:</b> <a href="String_8cc_source.html#l00476">String.cc:476</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_a0ec4b412b1e475468e79ff62043e1f80"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#a0ec4b412b1e475468e79ff62043e1f80">zypp::PluginFrame::ackCommand</a></div><div class="ttdeci">static const std::string & ackCommand()</div><div class="ttdoc">"ACK" command.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00241">PluginFrame.cc:241</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_a30fca2b2ddbd46e666a94efd5bf25eb1"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#a30fca2b2ddbd46e666a94efd5bf25eb1">zypp::PluginFrame::Impl::_header</a></div><div class="ttdeci">HeaderList _header</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00152">PluginFrame.cc:152</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_a99701c9d68c205b0a3278b187420b0c1"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#a99701c9d68c205b0a3278b187420b0c1">zypp::PluginFrame::_pimpl</a></div><div class="ttdeci">RWCOW_pointer< Impl > _pimpl</div><div class="ttdoc">Pointer to implementation.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8h_source.html#l00250">PluginFrame.h:250</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_ab2b6572d7eb7272c34ba7ee71eb08334"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#ab2b6572d7eb7272c34ba7ee71eb08334">zypp::PluginFrame::Impl::setHeader</a></div><div class="ttdeci">void setHeader(const std::string &key_r, const std::string &value_r)</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00124">PluginFrame.cc:124</a></div></div> <div class="ttc" id="namespacezypp_1_1sat_1_1detail_html_ac0d3ca93132eee14b022898f23b49d07"><div class="ttname"><a href="namespacezypp_1_1sat_1_1detail.html#ac0d3ca93132eee14b022898f23b49d07">zypp::sat::detail::size_type</a></div><div class="ttdeci">SolvableIdType size_type</div><div class="ttdef"><b>Definition:</b> <a href="PoolMember_8h_source.html#l00152">PoolMember.h:152</a></div></div> <div class="ttc" id="LogTools_8h_html"><div class="ttname"><a href="LogTools_8h.html">LogTools.h</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_a9f40dee988284b7dc031e94d7d74b3f1"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#a9f40dee988284b7dc031e94d7d74b3f1">zypp::PluginFrame::Impl::headerList</a></div><div class="ttdeci">HeaderList & headerList()</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00081">PluginFrame.cc:81</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_a2f8e9117a3bed36ae95230753e14d8b6"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#a2f8e9117a3bed36ae95230753e14d8b6">zypp::PluginFrame::setBody</a></div><div class="ttdeci">void setBody(const std::string &body_r)</div><div class="ttdoc">Set the frame body.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00298">PluginFrame.cc:298</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_aada34762e4bc66fab2612fb00dfa992f"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#aada34762e4bc66fab2612fb00dfa992f">zypp::PluginFrame::HeaderList</a></div><div class="ttdeci">std::multimap< std::string, std::string > HeaderList</div><div class="ttdoc">The header list.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8h_source.html#l00135">PluginFrame.h:135</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_ab379ab08c91dab542d25bb54da2d11af"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#ab379ab08c91dab542d25bb54da2d11af">zypp::PluginFrame::Impl::clone</a></div><div class="ttdeci">Impl * clone() const</div><div class="ttdoc">clone for RWCOW_pointer</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00164">PluginFrame.cc:164</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_aad8c5bfbeb50eac6dd790c5195394f8d"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#aad8c5bfbeb50eac6dd790c5195394f8d">zypp::PluginFrame::Impl::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00055">PluginFrame.cc:55</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_ae3bd62fc4d3d1d948b10d9278bfe7d2d"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#ae3bd62fc4d3d1d948b10d9278bfe7d2d">zypp::PluginFrame::Impl::mkHeaderPair</a></div><div class="ttdeci">HeaderList::value_type mkHeaderPair(const std::string &key_r, const std::string &value_r)</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00115">PluginFrame.cc:115</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_a5f8168a186240dac3aa2e83d60545e37"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#a5f8168a186240dac3aa2e83d60545e37">zypp::PluginFrame::Impl::getHeaderNT</a></div><div class="ttdeci">const std::string & getHeaderNT(const std::string &key_r, const std::string &default_r) const</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00109">PluginFrame.cc:109</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_abb692a04d15dff5017b966ee1e13fa22"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#abb692a04d15dff5017b966ee1e13fa22">zypp::PluginFrame::Impl::addHeader</a></div><div class="ttdeci">void addHeader(const std::string &key_r, const std::string &value_r)</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00130">PluginFrame.cc:130</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_a5164fac8f6aaa3ab239c23aa22025287"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#a5164fac8f6aaa3ab239c23aa22025287">zypp::PluginFrame::HeaderListIterator</a></div><div class="ttdeci">HeaderList::const_iterator HeaderListIterator</div><div class="ttdoc">Header list iterator.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8h_source.html#l00138">PluginFrame.h:138</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_aa99d01b049fca7be2ee92581febb6763"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#aa99d01b049fca7be2ee92581febb6763">zypp::PluginFrame::Impl::getHeader</a></div><div class="ttdeci">const std::string & getHeader(const std::string &key_r) const</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00087">PluginFrame.cc:87</a></div></div> <div class="ttc" id="namespacezypp_1_1str_html_a7116cde967828e981894ee7caad38d3e"><div class="ttname"><a href="namespacezypp_1_1str.html#a7116cde967828e981894ee7caad38d3e">zypp::str::receiveUpTo</a></div><div class="ttdeci">std::string receiveUpTo(std::istream &str, const char delim_r, bool returnDelim_r)</div><div class="ttdoc">Return stream content up to the next ocurrence of delim_r or EOF delim_r, if found,...</div><div class="ttdef"><b>Definition:</b> <a href="String_8cc_source.html#l00486">String.cc:486</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_aed4289b675c2d7ea203feee6049108d0"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#aed4289b675c2d7ea203feee6049108d0">zypp::PluginFrame::setHeader</a></div><div class="ttdeci">void setHeader(const std::string &key_r, const std::string &value_r=std::string())</div><div class="ttdoc">Set header for key_r removing all other occurrences of key_r.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00319">PluginFrame.cc:319</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_ae8c758affe36494d5baadb9742dc46de"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#ae8c758affe36494d5baadb9742dc46de">zypp::PluginFrame::headerList</a></div><div class="ttdeci">HeaderList & headerList()</div><div class="ttdoc">Modifyalble header list for internal use only.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00304">PluginFrame.cc:304</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_ad6e47b90b7dcf7979dfabc3054de784f"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#ad6e47b90b7dcf7979dfabc3054de784f">zypp::PluginFrame::getHeader</a></div><div class="ttdeci">const std::string & getHeader(const std::string &key_r) const</div><div class="ttdoc">Return header value for key_r.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00310">PluginFrame.cc:310</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_ae1f86681773a488bcf04f3087200d9bb"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#ae1f86681773a488bcf04f3087200d9bb">zypp::PluginFrame::Impl::headerList</a></div><div class="ttdeci">const HeaderList & headerList() const</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00084">PluginFrame.cc:84</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_af8fdc0a73fc3ed581c4d6b63f50dc3f0"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#af8fdc0a73fc3ed581c4d6b63f50dc3f0">zypp::PluginFrame::Impl::operator<<</a></div><div class="ttdeci">std::ostream & operator<<(std::ostream &str, const PluginFrame::Impl &obj)</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00170">PluginFrame.cc:170</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html">zypp::PluginFrame::Impl</a></div><div class="ttdoc">PluginFrame implementation.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00032">PluginFrame.cc:32</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_a41d2cebe9ca0468cf408ab63dc570572"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#a41d2cebe9ca0468cf408ab63dc570572">zypp::PluginFrame::bodyRef</a></div><div class="ttdeci">std::string & bodyRef()</div><div class="ttdoc">Return a reference to the frame body.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00295">PluginFrame.cc:295</a></div></div> <div class="ttc" id="namespacezypp_html"><div class="ttname"><a href="namespacezypp.html">zypp</a></div><div class="ttdoc">Easy-to use interface to the ZYPP dependency resolver.</div><div class="ttdef"><b>Definition:</b> <a href="CodePitfalls_8doc_source.html#l00001">CodePitfalls.doc:1</a></div></div> <div class="ttc" id="classzypp_1_1PluginFrame_html_a4d93f8b447eeded4f82905188dd3b3e0"><div class="ttname"><a href="classzypp_1_1PluginFrame.html#a4d93f8b447eeded4f82905188dd3b3e0">zypp::PluginFrame::clearHeader</a></div><div class="ttdeci">void clearHeader(const std::string &key_r)</div><div class="ttdoc">Remove all headers for key_r.</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00328">PluginFrame.cc:328</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_ab0169793be9e6b663b84b8bdafc2e44a"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#ab0169793be9e6b663b84b8bdafc2e44a">zypp::PluginFrame::Impl::bodyRef</a></div><div class="ttdeci">std::string & bodyRef()</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00071">PluginFrame.cc:71</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_a96cfcb33f41308f9063f93e7b9127082"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#a96cfcb33f41308f9063f93e7b9127082">zypp::PluginFrame::Impl::setBody</a></div><div class="ttdeci">void setBody(const std::string &body_r)</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00074">PluginFrame.cc:74</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_a29858e78acde6f3fec60d8891f353681"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#a29858e78acde6f3fec60d8891f353681">zypp::PluginFrame::Impl::command</a></div><div class="ttdeci">const std::string & command() const</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00058">PluginFrame.cc:58</a></div></div> <div class="ttc" id="structzypp_1_1PluginFrame_1_1Impl_html_a4e66485247e71809218912d940c262c2"><div class="ttname"><a href="structzypp_1_1PluginFrame_1_1Impl.html#a4e66485247e71809218912d940c262c2">zypp::PluginFrame::Impl::body</a></div><div class="ttdeci">const std::string & body() const</div><div class="ttdef"><b>Definition:</b> <a href="PluginFrame_8cc_source.html#l00068">PluginFrame.cc:68</a></div></div> <div class="ttc" id="String_8h_html"><div class="ttname"><a href="String_8h.html">String.h</a></div></div> <div class="ttc" id="PluginFrame_8h_html"><div class="ttname"><a href="PluginFrame_8h.html">PluginFrame.h</a></div></div> </div><!-- fragment --></div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="dir_c187b43c6f283d9fc95eff3f44ce072a.html">zypp</a></li><li class="navelem"><a class="el" href="PluginFrame_8cc.html">PluginFrame.cc</a></li> <li class="footer">Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li> </ul> </div> </body> </html>