<!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/media/MediaHandler.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('MediaHandler_8cc_source.html','');}); /* @license-end */ </script> <div id="doc-content"> <div class="header"> <div class="headertitle"> <div class="title">MediaHandler.cc</div> </div> </div><!--header--> <div class="contents"> <a href="MediaHandler_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="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <iostream></span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <fstream></span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <sstream></span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="ZConfig_8h.html">zypp/ZConfig.h</a>"</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="TmpPath_8h.html">zypp/TmpPath.h</a>"</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="Date_8h.html">zypp/Date.h</a>"</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "<a class="code" href="LogTools_8h.html">zypp/base/LogTools.h</a>"</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "<a class="code" href="Gettext_8h.html">zypp/base/Gettext.h</a>"</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="String_8h.html">zypp/base/String.h</a>"</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "<a class="code" href="MediaHandler_8h.html">zypp/media/MediaHandler.h</a>"</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="MediaManager_8h.html">zypp/media/MediaManager.h</a>"</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="Mount_8h.html">zypp/media/Mount.h</a>"</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <limits.h></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <stdlib.h></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <errno.h></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">using namespace </span><a class="code" href="namespacestd.html">std</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// use directory.yast on every media (not just via ftp/http)</span></div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="MediaHandler_8cc.html#a4e759292d60bd4c5b7d0dbab40cf5a04"> 34</a></span> <span class="preprocessor">#define NONREMOTE_DIRECTORY_YAST 1</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">namespace </span><a class="code" href="namespacezypp.html">zypp</a> {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">namespace </span>media {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  Pathname MediaHandler::_attachPrefix(<span class="stringliteral">""</span>);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">//</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// CLASS NAME : MediaHandler</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">//</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"></span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">//</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">//</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// METHOD NAME : MediaHandler::MediaHandler</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">// METHOD TYPE : Constructor</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">//</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">//</span></div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a1eb74642c2bf0de0eec0c2979f2c109f"> 55</a></span> MediaHandler::MediaHandler ( <span class="keyword">const</span> <a class="code" href="classzypp_1_1Url.html">Url</a> & url_r,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & attach_point_r,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & urlpath_below_attachpoint_r,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> does_download_r )</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  : _mediaSource()</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  , _attachPoint( new <a class="code" href="classzypp_1_1media_1_1AttachPoint.html">AttachPoint</a>())</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  , _attachPointHint()</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  , _relativeRoot( urlpath_below_attachpoint_r)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  , _does_download( does_download_r )</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  , _attach_mtime(0)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  , _url( url_r )</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  , _parentId(0)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> real_attach_point( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a40ba095706505a02480be10c57fedae6">getRealPath</a>(attach_point_r.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">asString</a>()));</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">if</span> ( !real_attach_point.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">empty</a>() ) {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="comment">// check if provided attachpoint is usable.</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"></span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a> adir( real_attach_point );</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="comment">//</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">// The verify if attach_point_r isn't a mountpoint of another</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">// device is done in the particular media handler (if needed).</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">//</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="comment">// We just verify, if attach_point_r is a directory and for</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="comment">// schemes other than "file" and "dir", if it is absolute.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="comment">//</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">if</span> ( !adir.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a7438f09a49f2732c9ce366e8454cef26">isDir</a>()</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  || (<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a7cfb708dcbc4d3d8f8d8d152258fbb93">_url</a>.<a class="code" href="classzypp_1_1Url.html#a095ef9bbb54284f4399b5f84659a5341">getScheme</a>() != <span class="stringliteral">"file"</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  && <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a7cfb708dcbc4d3d8f8d8d152258fbb93">_url</a>.<a class="code" href="classzypp_1_1Url.html#a095ef9bbb54284f4399b5f84659a5341">getScheme</a>() != <span class="stringliteral">"dir"</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  && !real_attach_point.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a7b86043297b38b0430d6470613f51275">absolute</a>()) )</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> << <span class="stringliteral">"Provided attach point is not a absolute directory: "</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  << adir << endl;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a51d585c097644009ee064bc915f3268d">attachPointHint</a>( real_attach_point, <span class="keyword">false</span>);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a87c6c31ca9900d473167ab7468e0b008">setAttachPoint</a>( real_attach_point, <span class="keyword">false</span>);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</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="l00099"></a><span class="lineno"> 99</span> <span class="comment">//</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment">//</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment">// METHOD NAME : MediaHandler::~MediaHandler</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment">// METHOD TYPE : Destructor</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment">//</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment">//</span></div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#ab178673dbbc41cdc6e1713720edfbd64"> 106</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ab178673dbbc41cdc6e1713720edfbd64">MediaHandler::~MediaHandler</a>()</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>  <span class="keywordflow">try</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a85f9e8bab5a1e3fcbc61e0436aa82f14">removeAttachPoint</a>();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">catch</span>(...) {}</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"> 115</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a2b6b7e4c7386ef811086f5b111468059"> 116</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a2b6b7e4c7386ef811086f5b111468059">MediaHandler::resetParentId</a>()</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#afb30e86a52f0c39b1e8426c217fb4d99">_parentId</a> = 0;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> std::string</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a40ba095706505a02480be10c57fedae6"> 122</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a40ba095706505a02480be10c57fedae6">MediaHandler::getRealPath</a>(<span class="keyword">const</span> std::string &path)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  std::string real;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">if</span>( !path.empty())</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor">#if __GNUC__ > 2</span></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>  <span class="keywordtype">char</span> *ptr = ::realpath(path.c_str(), NULL);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span>( ptr != NULL)</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>  real = ptr;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  free( ptr);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">if</span>( EINVAL == errno)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordtype">char</span> buff[PATH_MAX + 2];</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  memset(buff, <span class="charliteral">'\0'</span>, <span class="keyword">sizeof</span>(buff));</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">if</span>( ::realpath(path.c_str(), buff) != NULL)</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>  real = buff;</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="preprocessor">#else</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordtype">char</span> buff[PATH_MAX + 2];</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  memset(buff, <span class="charliteral">'\0'</span>, <span class="keyword">sizeof</span>(buff));</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">if</span>( ::realpath(path.c_str(), buff) != NULL)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  real = buff;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">return</span> real;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> }</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> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">zypp::Pathname</a></div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a7038c484713c8c7258b8d5daa465a91b"> 159</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a40ba095706505a02480be10c57fedae6">MediaHandler::getRealPath</a>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &path)</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="keywordflow">return</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">zypp::Pathname</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a40ba095706505a02480be10c57fedae6">getRealPath</a>(path.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">asString</a>()));</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">//</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="comment">//</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment">// METHOD NAME : MediaHandler::removeAttachPoint</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment">// METHOD TYPE : void</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment">//</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment">//</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a85f9e8bab5a1e3fcbc61e0436aa82f14"> 174</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a85f9e8bab5a1e3fcbc61e0436aa82f14">MediaHandler::removeAttachPoint</a>()</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a> ) {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#gafeeffe52c8fd59db7c61cf8b02042dbf">INT</a> << <span class="stringliteral">"MediaHandler deleted with media attached."</span> << endl;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">return</span>; <span class="comment">// no cleanup if media still mounted!</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</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>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"MediaHandler - checking if to remove attach point"</span> << endl;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>.<a class="code" href="structzypp_1_1RW__pointer.html#abf313e75438e491212cfc3a62bf1fafc">unique</a>() &&</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>->temp &&</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  !<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>->path.empty() &&</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>->path).<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a7438f09a49f2732c9ce366e8454cef26">isDir</a>())</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> path(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>->path);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a87c6c31ca9900d473167ab7468e0b008">setAttachPoint</a>(<span class="stringliteral">""</span>, <span class="keyword">true</span>);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordtype">int</span> res = <a class="code" href="namespacezypp_1_1filesystem.html#a72db515ee4c999779798712405ed25e6">recursive_rmdir</a>( path );</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">if</span> ( res == 0 ) {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"Deleted default attach point "</span> << path << endl;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> << <span class="stringliteral">"Failed to Delete default attach point "</span> << path</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  << <span class="stringliteral">" errno("</span> << res << <span class="stringliteral">")"</span> << endl;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</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">else</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">if</span>( !<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>->path.empty() && !<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>->temp)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"MediaHandler - attachpoint is not temporary"</span> << endl;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</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> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="comment">//</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment">//</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment">// METHOD NAME : MediaHandler::attachPoint</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="comment">// METHOD TYPE : Pathname</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="comment">//</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="comment">//</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a></div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a8add4c3534425ea0e8799436de34d249"> 216</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a8add4c3534425ea0e8799436de34d249">MediaHandler::attachPoint</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="keyword"></span>{</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>->path;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</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> </div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="comment">//</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment">//</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment">// METHOD NAME : MediaHandler::attachPoint</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment">// METHOD TYPE :</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="comment">//</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="comment">//</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a87c6c31ca9900d473167ab7468e0b008"> 231</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a87c6c31ca9900d473167ab7468e0b008">MediaHandler::setAttachPoint</a>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &path, <span class="keywordtype">bool</span> temporary)</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>.<a class="code" href="structzypp_1_1RW__pointer.html#a676dccd155c866ccebeafcd07d30733f">reset</a>( <span class="keyword">new</span> <a class="code" href="classzypp_1_1media_1_1AttachPoint.html">AttachPoint</a>(path, temporary));</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a></div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a937d262b63ede449829c8d3719864edc"> 237</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a937d262b63ede449829c8d3719864edc">MediaHandler::localRoot</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="keyword"></span>{</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">if</span>( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>->path.empty())</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>();</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>->path + <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#acbfb21d3b0e171b66db29a84575e02e9">_relativeRoot</a>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> }</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="comment">//</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="comment">//</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="comment">// METHOD NAME : MediaHandler::attachPoint</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="comment">// METHOD TYPE :</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="comment">//</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="comment">//</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a864044c8347c913961d5e98c097d453a"> 254</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a87c6c31ca9900d473167ab7468e0b008">MediaHandler::setAttachPoint</a>(<span class="keyword">const</span> <a class="code" href="structzypp_1_1RW__pointer.html">AttachPointRef</a> &ref)</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span> {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">if</span>( ref)</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <a class="code" href="namespacezypp_1_1media.html#a99d4d6dd3b34a8f813d5e19e889ac4bd">AttachPointRef</a>(ref).<a class="code" href="structzypp_1_1RW__pointer.html#a8697ed1acb8ec414f76358f844b1da02">swap</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>.<a class="code" href="structzypp_1_1RW__pointer.html#a676dccd155c866ccebeafcd07d30733f">reset</a>( <span class="keyword">new</span> <a class="code" href="classzypp_1_1media_1_1AttachPoint.html">AttachPoint</a>());</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="comment">//</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="comment">//</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="comment">// METHOD NAME : MediaHandler::attachPointHint</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="comment">// METHOD TYPE : void</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="comment">//</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="comment">//</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a481a1b407609bfffee28a36d70d47e7e"> 271</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a51d585c097644009ee064bc915f3268d">MediaHandler::attachPointHint</a>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &path, <span class="keywordtype">bool</span> temporary)</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a3cf5c598353eab19fa2dd41e57bc7d4d">_attachPointHint</a>.<a class="code" href="classzypp_1_1media_1_1AttachPoint.html#a8e6cd04f2950019227902bb27a01565e">path</a> = path;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a3cf5c598353eab19fa2dd41e57bc7d4d">_attachPointHint</a>.<a class="code" href="classzypp_1_1media_1_1AttachPoint.html#ad68218d64e73af4f3bb2486f3eeb12c3">temp</a> = temporary;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="comment">//</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="comment">//</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="comment">// METHOD NAME : MediaHandler::attachPointHint</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="comment">// METHOD TYPE : AttachPoint</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="comment">//</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="comment">//</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <a class="code" href="classzypp_1_1media_1_1AttachPoint.html">AttachPoint</a></div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a51d585c097644009ee064bc915f3268d"> 286</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a51d585c097644009ee064bc915f3268d">MediaHandler::attachPointHint</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="keyword"></span>{</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a3cf5c598353eab19fa2dd41e57bc7d4d">_attachPointHint</a>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="comment">//</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="comment">//</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="comment">// METHOD NAME : MediaHandler::findAttachedMedia</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="comment">// METHOD TYPE : AttachedMedia</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="comment">//</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="comment">//</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <a class="code" href="structzypp_1_1media_1_1AttachedMedia.html">AttachedMedia</a></div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#ad899dfad84e78bb80ae8e7302aae752f"> 300</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ad899dfad84e78bb80ae8e7302aae752f">MediaHandler::findAttachedMedia</a>(<span class="keyword">const</span> <a class="code" href="structzypp_1_1RW__pointer.html">MediaSourceRef</a> &media)<span class="keyword"> const</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="keyword"></span>{</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1media_1_1MediaManager.html">MediaManager</a>().<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a92eb2cd9b9d8329154ea4c7f7a7b6e66">findAttachedMedia</a>(media);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="comment">//</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="comment">//</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="comment">// METHOD NAME : MediaHandler::setAttachPrefix</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="comment">// METHOD TYPE : void</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="comment">//</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="comment">//</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="keywordtype">bool</span></div><div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a625a50ce49e43114b82295a63013bb47"> 314</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a625a50ce49e43114b82295a63013bb47">MediaHandler::setAttachPrefix</a>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &attach_prefix)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">if</span>( attach_prefix.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">empty</a>())</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"Reseting to built-in attach point prefixes."</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  << std::endl;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72f13c6bea40f42f2ac853f36a379e9c">MediaHandler::_attachPrefix</a> = attach_prefix;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">if</span>( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a210592896403f7905b55660fefc27fba">MediaHandler::checkAttachPoint</a>(attach_prefix, <span class="keyword">false</span>, <span class="keyword">true</span>))</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"Setting user defined attach point prefix: "</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  << attach_prefix << std::endl;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72f13c6bea40f42f2ac853f36a379e9c">MediaHandler::_attachPrefix</a> = attach_prefix;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordflow">return</span> <span class="keyword">false</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"> 333</span> </div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="comment">//</span></div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="comment">//</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="comment">// METHOD NAME : MediaHandler::attach</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="comment">// METHOD TYPE : Pathname</span></div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="comment">//</span></div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="comment">//</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a></div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a4cc866e446ca33510e14d2bdd309b10a"> 343</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a4cc866e446ca33510e14d2bdd309b10a">MediaHandler::createAttachPoint</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="keyword"></span>{</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> aroot;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> apoint;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  aroot = <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72f13c6bea40f42f2ac853f36a379e9c">MediaHandler::_attachPrefix</a>; <span class="comment">// explicit request</span></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">if</span> ( ! aroot.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">empty</a>() )</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  apoint = <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a4cc866e446ca33510e14d2bdd309b10a">createAttachPoint</a>( aroot );</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  }</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keywordflow">if</span> ( apoint.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">empty</a>() ) <span class="comment">// fallback to config value</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  aroot = <a class="code" href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">ZConfig::instance</a>().<a class="code" href="classzypp_1_1ZConfig.html#a3f311c896747a2d54dd184c9ce5a6173">download_mediaMountdir</a>();</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">if</span> ( ! aroot.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">empty</a>() )</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  apoint = <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a4cc866e446ca33510e14d2bdd309b10a">createAttachPoint</a>( aroot );</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keywordflow">if</span> ( apoint.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">empty</a>() ) <span class="comment">// fall back to temp space</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  {</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  aroot = <a class="code" href="classzypp_1_1filesystem_1_1TmpPath.html#a475efb7dd1966b7b1e1bd498dfa5ef2d">filesystem::TmpPath::defaultLocation</a>();</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">if</span> ( ! aroot.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">empty</a>() )</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  apoint = <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a4cc866e446ca33510e14d2bdd309b10a">createAttachPoint</a>( aroot );</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordflow">if</span> ( apoint.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">empty</a>() )</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keyword">auto</span> except = <a class="code" href="classzypp_1_1media_1_1MediaBadAttachPointException.html">MediaBadAttachPointException</a>( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>() );</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  except.addHistory( <a class="code" href="Gettext_8h.html#ad0ac7087c1804ce80118f897d7edd897">_</a>(<span class="stringliteral">"Create attach point: Can't find a writable directory to create an attach point"</span>) );</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>( std::move(except) );</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  }</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"Created default attach point "</span> << apoint << std::endl;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">return</span> apoint;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span> }</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a></div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a1aa63bb9bd2e9e8ed9e9b9119f998cb5"> 379</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a4cc866e446ca33510e14d2bdd309b10a">MediaHandler::createAttachPoint</a>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &attach_root)<span class="keyword"> const</span></div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keyword"></span>{</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> apoint;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">if</span>( attach_root.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">empty</a>() || !attach_root.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a7b86043297b38b0430d6470613f51275">absolute</a>()) {</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> << <span class="stringliteral">"Create attach point: invalid attach root: '"</span></div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  << attach_root << <span class="stringliteral">"'"</span> << std::endl;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">return</span> apoint;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  }</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a> adir( attach_root );</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">if</span>( !adir.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a7438f09a49f2732c9ce366e8454cef26">isDir</a>() || (geteuid() != 0 && !adir.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a615cba7ef44ed8d6cd15872642b0a768">userMayRWX</a>())) {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Create attach point: attach root is not a writable directory: '"</span></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  << attach_root << <span class="stringliteral">"'"</span> << std::endl;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">return</span> apoint;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  }</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> cleanup_once( <span class="keyword">true</span> );</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">if</span> ( cleanup_once )</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  cleanup_once = <span class="keyword">false</span>;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Look for orphaned attach points in "</span> << adir << std::endl;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  std::list<std::string> entries;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <a class="code" href="namespacezypp_1_1filesystem.html#a424d384472de80e5cc48f5d5662cc859">filesystem::readdir</a>( entries, attach_root, <span class="keyword">false</span> );</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordflow">for</span> ( <span class="keyword">const</span> std::string & entry : entries )</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordflow">if</span> ( ! <a class="code" href="namespacezypp_1_1str.html#a5e64cab973a815bfc5c3811b5086a2b9">str::hasPrefix</a>( entry, <span class="stringliteral">"AP_0x"</span> ) )</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a> sdir( attach_root + entry );</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="keywordflow">if</span> ( sdir.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a7438f09a49f2732c9ce366e8454cef26">isDir</a>()</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  && sdir.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a094ab06f1404e8bc78ba695f7e868000">dev</a>() == adir.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a094ab06f1404e8bc78ba695f7e868000">dev</a>()</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  && ( <a class="code" href="classzypp_1_1Date.html#adc8e5ca53781c19864f6c0e6aa6c1076">Date::now</a>()-sdir.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a3777cfd227cd25892c80f9d9d7ae60c4">mtime</a>() > <a class="code" href="classzypp_1_1Date.html#a7737bbe7ade5f2f44be0f610b8d82390">Date::month</a> ) )</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Remove orphaned attach point "</span> << sdir << std::endl;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <a class="code" href="namespacezypp_1_1filesystem.html#a72db515ee4c999779798712405ed25e6">filesystem::recursive_rmdir</a>( sdir.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#af8223f1087bb62c359f03a51fb32a5a1">path</a>() );</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  }</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  }</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  }</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="classzypp_1_1filesystem_1_1TmpDir.html">filesystem::TmpDir</a> tmpdir( attach_root, <span class="stringliteral">"AP_0x"</span> );</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">if</span> ( tmpdir )</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  apoint = <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a40ba095706505a02480be10c57fedae6">getRealPath</a>( tmpdir.<a class="code" href="classzypp_1_1filesystem_1_1TmpPath.html#a6891667fdbc2f2aa70a5f97c66422786">path</a>().<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">asString</a>() );</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keywordflow">if</span> ( ! apoint.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">empty</a>() )</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  tmpdir.<a class="code" href="classzypp_1_1filesystem_1_1TmpPath.html#af64fe21abd1b1d54feb85b61d8cf4957">autoCleanup</a>( <span class="keyword">false</span> ); <span class="comment">// Take responsibility for cleanup.</span></div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> << <span class="stringliteral">"Unable to resolve real path for attach point "</span> << tmpdir << std::endl;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  }</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  {</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> << <span class="stringliteral">"Unable to create attach point below "</span> << attach_root << std::endl;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">return</span> apoint;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span> </div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="comment">//</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="comment">//</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="comment">// METHOD NAME : MediaHandler::isUseableAttachPoint</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="comment">// METHOD TYPE : bool</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="comment">//</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="comment">//</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="keywordtype">bool</span></div><div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a010623da29865f9e33f602282dae7068"> 447</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a010623da29865f9e33f602282dae7068">MediaHandler::isUseableAttachPoint</a>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &path, <span class="keywordtype">bool</span> mtab)<span class="keyword"> const</span></div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="keyword"></span>{</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <a class="code" href="classzypp_1_1media_1_1MediaManager.html">MediaManager</a> manager;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordflow">return</span> manager.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#ab5822068f869d72bdb30f6ee5cd45b19">isUseableAttachPoint</a>(path, mtab);</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span> }</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span> </div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="comment">//</span></div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="comment">//</span></div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="comment">// METHOD NAME : MediaHandler::setMediaSource</span></div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="comment">// METHOD TYPE : void</span></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="comment">//</span></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="comment">//</span></div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a6fbdb4561add8d76085ff4c173bd6025"> 463</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a6fbdb4561add8d76085ff4c173bd6025">MediaHandler::setMediaSource</a>(<span class="keyword">const</span> <a class="code" href="structzypp_1_1RW__pointer.html">MediaSourceRef</a> &ref)</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span> {</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>.<a class="code" href="structzypp_1_1RW__pointer.html#a676dccd155c866ccebeafcd07d30733f">reset</a>();</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordflow">if</span>( ref && !ref->type.empty() && !ref->name.empty())</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a> = ref;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> }</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> </div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="comment">//</span></div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="comment">//</span></div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="comment">// METHOD NAME : MediaHandler::attachedMedia</span></div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="comment">// METHOD TYPE : AttachedMedia</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="comment">//</span></div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="comment">//</span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <a class="code" href="structzypp_1_1media_1_1AttachedMedia.html">AttachedMedia</a></div><div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#ae85c49445d75f006e6b5261faebbcc5a"> 479</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ae85c49445d75f006e6b5261faebbcc5a">MediaHandler::attachedMedia</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="keyword"></span>{</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a> && <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>)</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordflow">return</span> <a class="code" href="structzypp_1_1media_1_1AttachedMedia.html">AttachedMedia</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>, <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keywordflow">return</span> <a class="code" href="structzypp_1_1media_1_1AttachedMedia.html">AttachedMedia</a>();</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span> }</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> </div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="comment">//</span></div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="comment">//</span></div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="comment">// METHOD NAME : MediaHandler::isSharedMedia</span></div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="comment">// METHOD TYPE : bool</span></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="comment">//</span></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="comment">//</span></div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="keywordtype">bool</span></div><div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#adcad705a81dc677483a77d4e6d8c96d9"> 496</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#adcad705a81dc677483a77d4e6d8c96d9">MediaHandler::isSharedMedia</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="keyword"></span>{</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">return</span> !<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>.<a class="code" href="structzypp_1_1RW__pointer.html#abf313e75438e491212cfc3a62bf1fafc">unique</a>();</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span> }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span> </div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="comment">//</span></div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="comment">//</span></div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="comment">// METHOD NAME : MediaHandler::checkAttached</span></div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="comment">// METHOD TYPE : bool</span></div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="comment">//</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="comment">//</span></div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="keywordtype">bool</span></div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a84980af7ffd1aab5d7fd15f6eb58c228"> 510</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a84980af7ffd1aab5d7fd15f6eb58c228">MediaHandler::checkAttached</a>(<span class="keywordtype">bool</span> matchMountFs)<span class="keyword"> const</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="keyword"></span>{</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordtype">bool</span> _isAttached = <span class="keyword">false</span>;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> </div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <a class="code" href="structzypp_1_1media_1_1AttachedMedia.html">AttachedMedia</a> ref( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ae85c49445d75f006e6b5261faebbcc5a">attachedMedia</a>() );</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">if</span>( ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a> )</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  {</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  time_t old_mtime = <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a2ea0f47a546d83eabcdfe2cc2290b5e5">_attach_mtime</a>;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a2ea0f47a546d83eabcdfe2cc2290b5e5">_attach_mtime</a> = <a class="code" href="classzypp_1_1media_1_1MediaManager.html#a80373d64179b193e1efb732b3727ed53">MediaManager::getMountTableMTime</a>();</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">if</span>( !(old_mtime <= 0 || <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a2ea0f47a546d83eabcdfe2cc2290b5e5">_attach_mtime</a> != old_mtime) )</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  {</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="comment">// OK, skip the check (we've seen it at least once)</span></div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  _isAttached = <span class="keyword">true</span>;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  }</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="keywordflow">if</span>( old_mtime > 0)</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Mount table changed - rereading it"</span> << std::endl;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Forced check of the mount table"</span> << std::endl;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span> </div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  MountEntries entries( <a class="code" href="classzypp_1_1media_1_1MediaManager.html#afed95c07e50e880379b8e2f95006d166">MediaManager::getMountEntries</a>());</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <a class="code" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e">for_</a>( e, entries.begin(), entries.end() )</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">if</span> ( ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a88490a2ee6865c34353660a0e7d2b691">attachPoint</a>->path != <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>(e->dir) )</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordflow">continue</span>; <span class="comment">// at least the mount points must match</span></div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span> </div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordtype">bool</span> is_device = <span class="keyword">false</span>;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a> dev_info;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordflow">if</span>( <a class="code" href="namespacezypp_1_1str.html#a5e64cab973a815bfc5c3811b5086a2b9">str::hasPrefix</a>( <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>(e->src).<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">asString</a>(), <span class="stringliteral">"/dev/"</span> ) &&</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  dev_info(e->src) && dev_info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a0f8f5a3c525e971c7418b6dcd59f9d87">isBlk</a>() )</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  is_device = <span class="keyword">true</span>;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  }</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span> </div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordflow">if</span>( is_device && (ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->maj_nr &&</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->bdir.empty()))</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  {</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  std::string mtype(matchMountFs ? e->type : ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->type);</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <a class="code" href="classzypp_1_1media_1_1MediaSource.html">MediaSource</a> media(mtype, e->src, dev_info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#ade23e0a8fdbcf559b85c0526bf9ed605">devMajor</a>(), dev_info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a844ac30dcb5f8ee4d1cfaeef7ad0978c">devMinor</a>());</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span> </div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">if</span>( ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->equals( media ) )</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Found media device "</span></div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  << ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->asString()</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  << <span class="stringliteral">" in the mount table as "</span> << e->src << std::endl;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  _isAttached = <span class="keyword">true</span>;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  }</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="comment">// differs</span></div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  }</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="keywordflow">if</span>(!is_device && (!ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->maj_nr ||</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  !ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->bdir.empty()))</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  {</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordflow">if</span>( ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->bdir.empty())</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  {</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="comment">// bnc#710269: Type nfs may appear as nfs4 in in the mount table</span></div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="comment">// and maybe vice versa. Similar cifs/smb. Need to unify these types:</span></div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keywordflow">if</span> ( matchMountFs && e->type != ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->type )</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  {</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="keywordflow">if</span> ( <a class="code" href="namespacezypp_1_1str.html#a5e64cab973a815bfc5c3811b5086a2b9">str::hasPrefix</a>( e->type, <span class="stringliteral">"nfs"</span> ) && <a class="code" href="namespacezypp_1_1str.html#a5e64cab973a815bfc5c3811b5086a2b9">str::hasPrefix</a>( ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->type, <span class="stringliteral">"nfs"</span> ) )</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  matchMountFs = <span class="keyword">false</span>;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( ( e->type == <span class="stringliteral">"cifs"</span> || e->type == <span class="stringliteral">"smb"</span> ) && ( ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->type == <span class="stringliteral">"cifs"</span> || ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->type == <span class="stringliteral">"smb"</span> ) )</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  matchMountFs = <span class="keyword">false</span>;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">continue</span>; <span class="comment">// different types cannot match</span></div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  }</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="comment">// Here: Types are ok or not to check.</span></div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="comment">// Check the name except for nfs (bnc#804544; symlink resolution in mount path)</span></div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="comment">//</span></div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="comment">// [fibonacci]$ ls -l /Local/ma/c12.1</span></div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="comment">// lrwxrwxrwx /Local/ma/c12.1 -> zypp-SuSE-Code-12_1-Branch/</span></div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="comment">//</span></div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="comment">// [localhost]$ mount -t nfs4 fibonacci:/Local/ma/c12.1 /mnt</span></div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="comment">// [localhost]$ mount</span></div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="comment">// fibonacci:/Local/ma/zypp-SuSE-Code-12_1-Branch on /mnt</span></div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span> </div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="comment">// std::string mtype(matchMountFs ? e->type : ref.mediaSource->type);</span></div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="comment">// MediaSource media(mtype, e->src);</span></div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span> </div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">if</span>( ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->name == e->src || <a class="code" href="namespacezypp_1_1str.html#a5e64cab973a815bfc5c3811b5086a2b9">str::hasPrefix</a>( ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->type, <span class="stringliteral">"nfs"</span> ) )</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  {</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Found media name "</span></div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  << ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->asString()</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  << <span class="stringliteral">" in the mount table as "</span> << e->src << std::endl;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  _isAttached = <span class="keyword">true</span>;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  }</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  }</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  {</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keywordflow">if</span> ( ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->bdir == e->src )</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  {</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Found bound media "</span></div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  << ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->asString()</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  << <span class="stringliteral">" in the mount table as "</span> << e->src << std::endl;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  _isAttached = <span class="keyword">true</span>;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  }</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  }</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="comment">// differs</span></div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  }</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordflow">else</span> <span class="comment">// mixed cases:</span></div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  {</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="comment">// Type ISO: Since 11.1 mtab might contain the name of</span></div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="comment">// the loop device instead of the iso file:</span></div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="keywordflow">if</span> ( ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->type == <span class="stringliteral">"iso"</span></div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  && <a class="code" href="namespacezypp_1_1str.html#a5e64cab973a815bfc5c3811b5086a2b9">str::hasPrefix</a>( <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>(e->src).<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">asString</a>(), <span class="stringliteral">"/dev/loop"</span> )</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  && ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a88490a2ee6865c34353660a0e7d2b691">attachPoint</a>->path == <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>(e->dir) )</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  {</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Found bound media "</span></div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  << ref.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->asString()</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  << <span class="stringliteral">" in the mount table as "</span> << e->src << std::endl;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  _isAttached = <span class="keyword">true</span>;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  }</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  }</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  }</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span> </div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="keywordflow">if</span>( !_isAttached)</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  {</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"Looking for "</span> << ref << endl;</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <span class="keywordflow">if</span>( entries.empty() )</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  {</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> << <span class="stringliteral">"Unable to find any entry in the /etc/mtab file"</span> << std::endl;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  }</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  {</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <a class="code" href="namespacezypp.html#aca13105e2531a707430f1204abcc0039">dumpRange</a>( <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"MountEntries: "</span>, entries.begin(), entries.end() ) << endl;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  }</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="keywordflow">if</span>( old_mtime > 0 )</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> << <span class="stringliteral">"Attached media not in mount table any more - forcing reset!"</span></div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  << std::endl;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span> </div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>.<a class="code" href="structzypp_1_1RW__pointer.html#a676dccd155c866ccebeafcd07d30733f">reset</a>();</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  }</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  {</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> << <span class="stringliteral">"Attached media not in mount table ..."</span> << std::endl;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  }</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span> </div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <span class="comment">// reset the mtime and force a new check to make sure,</span></div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <span class="comment">// that we've found the media at least once in the mtab.</span></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a2ea0f47a546d83eabcdfe2cc2290b5e5">_attach_mtime</a> = 0;</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  }</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  }</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  }</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="keywordflow">return</span> _isAttached;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span> }</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span> </div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="comment">//</span></div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="comment">//</span></div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="comment">// METHOD NAME : MediaHandler::attach</span></div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="comment">//</span></div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="comment">//</span></div><div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a2755201e8211e907f804920c3121590c"> 670</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a2755201e8211e907f804920c3121590c">MediaHandler::attach</a>( <span class="keywordtype">bool</span> next )</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span> {</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a380a8ba3241f449352fff09cd7416acc">isAttached</a>() )</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span> </div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="comment">// reset it in case of overloaded isAttached()</span></div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="comment">// that checks the media against /etc/mtab ...</span></div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a6fbdb4561add8d76085ff4c173bd6025">setMediaSource</a>(<a class="code" href="namespacezypp_1_1media.html#a15171bbedd1533efec973d9fb23319be">MediaSourceRef</a>());</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span> </div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <a class="code" href="classzypp_1_1media_1_1AttachPoint.html">AttachPoint</a> ap( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a51d585c097644009ee064bc915f3268d">attachPointHint</a>());</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a87c6c31ca9900d473167ab7468e0b008">setAttachPoint</a>(ap.<a class="code" href="classzypp_1_1media_1_1AttachPoint.html#a8e6cd04f2950019227902bb27a01565e">path</a>, ap.<a class="code" href="classzypp_1_1media_1_1AttachPoint.html#ad68218d64e73af4f3bb2486f3eeb12c3">temp</a>);</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span> </div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keywordflow">try</span></div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  {</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a0b185f0fcfa17038ddc024b291fc4726">attachTo</a>( next ); <span class="comment">// pass to concrete handler</span></div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  }</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <span class="keywordflow">catch</span>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1media_1_1MediaException.html">MediaException</a> &e)</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  {</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a85f9e8bab5a1e3fcbc61e0436aa82f14">removeAttachPoint</a>();</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <a class="code" href="group__ZYPP__THROW.html#ga08d9b1a11fa29455c0419afa1d186887">ZYPP_RETHROW</a>(e);</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  }</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"Attached: "</span> << *<span class="keyword">this</span> << endl;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span> }</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span> </div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span> </div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="comment">//</span></div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <span class="comment">//</span></div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span> <span class="comment">// METHOD NAME : MediaHandler::localPath</span></div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="comment">// METHOD TYPE : Pathname</span></div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="comment">//</span></div><div class="line"><a name="l00701"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8"> 701</a></span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">MediaHandler::localPath</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & pathname )<span class="keyword"> const</span></div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="keyword"></span>{</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> _localRoot( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a937d262b63ede449829c8d3719864edc">localRoot</a>());</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="keywordflow">if</span> ( _localRoot.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">empty</a>() )</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keywordflow">return</span> _localRoot;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span> </div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="comment">// we must check maximum file name length</span></div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <span class="comment">// this is important for fetching the suseservers, the</span></div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="comment">// url with all parameters can get too long (bug #42021)</span></div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span> </div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="keywordflow">return</span> _localRoot + pathname.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#acab2b0e517adb30e5c75ef0d53f7f2fc">absolutename</a>();</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span> }</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span> </div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span> </div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span> </div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span> </div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span> </div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span> <span class="comment">//</span></div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="comment">//</span></div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="comment">// METHOD NAME : MediaHandler::disconnect</span></div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="comment">//</span></div><div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a2219a3357a555170a465b2f00971581c"> 724</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a2219a3357a555170a465b2f00971581c">MediaHandler::disconnect</a>()</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span> {</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keywordflow">if</span> ( !<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a380a8ba3241f449352fff09cd7416acc">isAttached</a>() )</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span> </div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a3f5dd6f99ffae37687c5148246255e85">disconnectFrom</a>(); <span class="comment">// pass to concrete handler</span></div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"Disconnected: "</span> << *<span class="keyword">this</span> << endl;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span> }</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span> </div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <span class="comment">//</span></div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span> <span class="comment">//</span></div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="comment">// METHOD NAME : MediaHandler::release</span></div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="comment">//</span></div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="comment">//</span></div><div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a82cf1d0e81f43e682b61ca322d3d48db"> 741</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a82cf1d0e81f43e682b61ca322d3d48db">MediaHandler::release</a>( <span class="keyword">const</span> std::string & ejectDev )</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span> {</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keywordflow">if</span> ( !<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a380a8ba3241f449352fff09cd7416acc">isAttached</a>() ) {</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Request to release media - not attached; eject '"</span> << ejectDev << <span class="stringliteral">"'"</span></div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  << std::endl;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keywordflow">if</span> ( !ejectDev.empty() )</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#aeba9ca80ae9acf5cfedb37f4b8e90f8a">forceEject</a>(ejectDev);</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  }</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span> </div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Request to release attached media "</span></div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  << <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>->asString()</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  << <span class="stringliteral">", use count="</span> << <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>.<a class="code" href="structzypp_1_1RW__pointer.html#a5fcff6961a3ffbbc7f5d566f6374b98d">use_count</a>()</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  << std::endl;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span> </div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">if</span>( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>.<a class="code" href="structzypp_1_1RW__pointer.html#abf313e75438e491212cfc3a62bf1fafc">unique</a>())</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  {</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Releasing media "</span> << <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>->asString() << std::endl;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <span class="keywordflow">try</span> {</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ae514ef63581f2c0097d3e2d2bdcbdfc7">releaseFrom</a>( ejectDev ); <span class="comment">// pass to concrete handler</span></div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  }</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordflow">catch</span>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1media_1_1MediaNotEjectedException.html">MediaNotEjectedException</a> &e)</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  {</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <span class="comment">// not ejected because the media</span></div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="comment">// is mounted by somebody else</span></div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <span class="comment">// (if our attach point is busy,</span></div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <span class="comment">// we get an umount exception)</span></div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>.<a class="code" href="structzypp_1_1RW__pointer.html#a676dccd155c866ccebeafcd07d30733f">reset</a>(NULL);</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a85f9e8bab5a1e3fcbc61e0436aa82f14">removeAttachPoint</a>();</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="comment">// OK, retrow now</span></div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <a class="code" href="group__ZYPP__THROW.html#ga08d9b1a11fa29455c0419afa1d186887">ZYPP_RETHROW</a>(e);</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  }</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>.<a class="code" href="structzypp_1_1RW__pointer.html#a676dccd155c866ccebeafcd07d30733f">reset</a>(NULL);</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a85f9e8bab5a1e3fcbc61e0436aa82f14">removeAttachPoint</a>();</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  }</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>( !ejectDev.empty() ) {</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  <span class="comment">//</span></div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <span class="comment">// Can't eject a shared media</span></div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="comment">//</span></div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <span class="comment">//ZYPP_THROW(MediaIsSharedException(_mediaSource->asString()));</span></div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span> </div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <a class="code" href="structzypp_1_1RW__pointer.html">MediaSourceRef</a> media( <span class="keyword">new</span> <a class="code" href="classzypp_1_1media_1_1MediaSource.html">MediaSource</a>(*<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>));</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>.<a class="code" href="structzypp_1_1RW__pointer.html#a676dccd155c866ccebeafcd07d30733f">reset</a>(NULL);</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span> </div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  <a class="code" href="classzypp_1_1media_1_1MediaManager.html">MediaManager</a> manager;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  manager.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a2294331e39aa918d0189750f67f1df72">forceReleaseShared</a>(media);</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span> </div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a6fbdb4561add8d76085ff4c173bd6025">setMediaSource</a>(media);</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Releasing media (forced) "</span> << <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>->asString() << std::endl;</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  <span class="keywordflow">try</span> {</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ae514ef63581f2c0097d3e2d2bdcbdfc7">releaseFrom</a>( ejectDev ); <span class="comment">// pass to concrete handler</span></div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  }</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  <span class="keywordflow">catch</span>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1media_1_1MediaNotEjectedException.html">MediaNotEjectedException</a> &e)</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  {</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="comment">// not ejected because the media</span></div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <span class="comment">// is mounted by somebody else</span></div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="comment">// (if our attach point is busy,</span></div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <span class="comment">// we get an umount exception)</span></div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>.<a class="code" href="structzypp_1_1RW__pointer.html#a676dccd155c866ccebeafcd07d30733f">reset</a>(NULL);</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a85f9e8bab5a1e3fcbc61e0436aa82f14">removeAttachPoint</a>();</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="comment">// OK, retrow now</span></div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <a class="code" href="group__ZYPP__THROW.html#ga08d9b1a11fa29455c0419afa1d186887">ZYPP_RETHROW</a>(e);</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  }</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>.<a class="code" href="structzypp_1_1RW__pointer.html#a676dccd155c866ccebeafcd07d30733f">reset</a>(NULL);</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a85f9e8bab5a1e3fcbc61e0436aa82f14">removeAttachPoint</a>();</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  }</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Releasing shared media reference only"</span> << std::endl;</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">_mediaSource</a>.<a class="code" href="structzypp_1_1RW__pointer.html#a676dccd155c866ccebeafcd07d30733f">reset</a>(NULL);</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a87c6c31ca9900d473167ab7468e0b008">setAttachPoint</a>(<span class="stringliteral">""</span>, <span class="keyword">true</span>);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  }</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"Released: "</span> << *<span class="keyword">this</span> << endl;</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span> }</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span> </div><div class="line"><a name="l00815"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a7cd266c754ecb7242c0dd46673de8046"> 815</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a7cd266c754ecb7242c0dd46673de8046">MediaHandler::forceRelaseAllMedia</a>(<span class="keywordtype">bool</span> matchMountFs)</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span> {</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a7cd266c754ecb7242c0dd46673de8046">forceRelaseAllMedia</a>( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ae85c49445d75f006e6b5261faebbcc5a">attachedMedia</a>().mediaSource, matchMountFs);</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span> }</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span> </div><div class="line"><a name="l00820"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#ac1d1c0dd35699967c3f0d3bacfb7ecf3"> 820</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a7cd266c754ecb7242c0dd46673de8046">MediaHandler::forceRelaseAllMedia</a>(<span class="keyword">const</span> <a class="code" href="structzypp_1_1RW__pointer.html">MediaSourceRef</a> &ref,</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keywordtype">bool</span> matchMountFs)</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span> {</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  <span class="keywordflow">if</span>( !ref)</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span> </div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  MountEntries entries( <a class="code" href="classzypp_1_1media_1_1MediaManager.html#afed95c07e50e880379b8e2f95006d166">MediaManager::getMountEntries</a>());</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  MountEntries::const_iterator e;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="keywordflow">for</span>( e = entries.begin(); e != entries.end(); ++e)</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  {</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keywordtype">bool</span> is_device = <span class="keyword">false</span>;</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a> dev_info;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span> </div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <span class="keywordflow">if</span>( <a class="code" href="namespacezypp_1_1str.html#a5e64cab973a815bfc5c3811b5086a2b9">str::hasPrefix</a>( <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>(e->src).<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">asString</a>(), <span class="stringliteral">"/dev/"</span> ) &&</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  dev_info(e->src) && dev_info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a0f8f5a3c525e971c7418b6dcd59f9d87">isBlk</a>())</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  {</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  is_device = <span class="keyword">true</span>;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  }</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span> </div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  <span class="keywordflow">if</span>( is_device && ref->maj_nr)</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  {</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  std::string mtype(matchMountFs ? e->type : ref->type);</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  <a class="code" href="classzypp_1_1media_1_1MediaSource.html">MediaSource</a> media(mtype, e->src, dev_info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#ade23e0a8fdbcf559b85c0526bf9ed605">devMajor</a>(), dev_info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a844ac30dcb5f8ee4d1cfaeef7ad0978c">devMinor</a>());</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span> </div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="keywordflow">if</span>( ref->equals( media) && e->type != <span class="stringliteral">"subfs"</span>)</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  {</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Forcing release of media device "</span></div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  << ref->asString()</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  << <span class="stringliteral">" in the mount table as "</span></div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  << e->src << std::endl;</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <span class="keywordflow">try</span> {</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <a class="code" href="classzypp_1_1media_1_1Mount.html">Mount</a> mount;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  mount.<a class="code" href="classzypp_1_1media_1_1Mount.html#a0d5c0038ad1f7b50ed5311f9a8bc44e1">umount</a>(e->dir);</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  }</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <span class="keywordflow">catch</span> (<span class="keyword">const</span> <a class="code" href="classzypp_1_1Exception.html">Exception</a> &e)</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  {</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>(e);</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  }</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  }</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  }</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keywordflow">if</span>(!is_device && !ref->maj_nr)</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  std::string mtype(matchMountFs ? e->type : ref->type);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  <a class="code" href="classzypp_1_1media_1_1MediaSource.html">MediaSource</a> media(mtype, e->src);</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="keywordflow">if</span>( ref->equals( media))</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  {</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Forcing release of media name "</span></div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  << ref->asString()</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  << <span class="stringliteral">" in the mount table as "</span></div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  << e->src << std::endl;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  <span class="keywordflow">try</span> {</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <a class="code" href="classzypp_1_1media_1_1Mount.html">Mount</a> mount;</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  mount.<a class="code" href="classzypp_1_1media_1_1Mount.html#a0d5c0038ad1f7b50ed5311f9a8bc44e1">umount</a>(e->dir);</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  }</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <span class="keywordflow">catch</span> (<span class="keyword">const</span> <a class="code" href="classzypp_1_1Exception.html">Exception</a> &e)</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  {</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>(e);</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  }</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  }</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  }</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  }</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span> }</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span> </div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span> <span class="keywordtype">bool</span></div><div class="line"><a name="l00885"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a210592896403f7905b55660fefc27fba"> 885</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a210592896403f7905b55660fefc27fba">MediaHandler::checkAttachPoint</a>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &apoint)<span class="keyword"> const</span></div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span> <span class="keyword"></span>{</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a210592896403f7905b55660fefc27fba">MediaHandler::checkAttachPoint</a>( apoint, <span class="keyword">true</span>, <span class="keyword">false</span>);</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span> }</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span> </div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span> <span class="comment">// STATIC</span></div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span> <span class="keywordtype">bool</span></div><div class="line"><a name="l00892"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a6d686ffcbe990602582775c474a475de"> 892</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a210592896403f7905b55660fefc27fba">MediaHandler::checkAttachPoint</a>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &apoint,</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="keywordtype">bool</span> emptydir,</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  <span class="keywordtype">bool</span> writeable)</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span> {</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  <span class="keywordflow">if</span>( apoint.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">empty</a>() || !apoint.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a7b86043297b38b0430d6470613f51275">absolute</a>())</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  {</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> << <span class="stringliteral">"Attach point '"</span> << apoint << <span class="stringliteral">"' is not absolute"</span></div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  << std::endl;</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  }</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  <span class="keywordflow">if</span>( apoint == <span class="stringliteral">"/"</span>)</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  {</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> << <span class="stringliteral">"Attach point '"</span> << apoint << <span class="stringliteral">"' is not allowed"</span></div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  << std::endl;</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  }</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span> </div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a> ainfo(apoint);</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  <span class="keywordflow">if</span>( !ainfo.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a7438f09a49f2732c9ce366e8454cef26">isDir</a>())</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  {</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> << <span class="stringliteral">"Attach point '"</span> << apoint << <span class="stringliteral">"' is not a directory"</span></div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  << std::endl;</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  }</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span> </div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <span class="keywordflow">if</span>( emptydir)</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  {</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  <span class="keywordflow">if</span>( 0 != <a class="code" href="namespacezypp_1_1filesystem.html#a370ac1ebc62bbdda2626d1560542665a">zypp::filesystem::is_empty_dir</a>(apoint))</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  {</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> << <span class="stringliteral">"Attach point '"</span> << apoint << <span class="stringliteral">"' is not a empty directory"</span></div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  << std::endl;</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  }</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  }</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span> </div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  <span class="keywordflow">if</span>( writeable)</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  {</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> apath(apoint + <span class="stringliteral">"XXXXXX"</span>);</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  <span class="keywordtype">char</span> *atemp = ::strdup( apath.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">asString</a>().c_str());</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  <span class="keywordtype">char</span> *atest = NULL;</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <span class="keywordflow">if</span>( !ainfo.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a615cba7ef44ed8d6cd15872642b0a768">userMayRWX</a>() || atemp == NULL ||</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  (atest=::mkdtemp(atemp)) == NULL)</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  {</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <span class="keywordflow">if</span>( atemp != NULL)</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  ::free(atemp);</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span> </div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> << <span class="stringliteral">"Attach point '"</span> << ainfo.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#af8223f1087bb62c359f03a51fb32a5a1">path</a>()</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  << <span class="stringliteral">"' is not a writeable directory"</span> << std::endl;</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  }</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>( atest != NULL)</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  <a class="code" href="namespacezypp_1_1filesystem.html#a6c43602bcbf440748dd6b93e36e1b187">::rmdir</a>(atest);</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span> </div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  <span class="keywordflow">if</span>( atemp != NULL)</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  ::free(atemp);</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  }</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span> }</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span> </div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span> <span class="comment">//</span></div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span> <span class="comment">// METHOD NAME : MediaHandler::dependsOnParent</span></div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span> <span class="comment">// METHOD TYPE : bool</span></div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span> <span class="comment">//</span></div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span> <span class="comment">//</span></div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span> <span class="keywordtype">bool</span></div><div class="line"><a name="l00959"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#aa04c48596065cefa68b6682508b523d6"> 959</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#aa04c48596065cefa68b6682508b523d6">MediaHandler::dependsOnParent</a>()</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span> {</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#afb30e86a52f0c39b1e8426c217fb4d99">_parentId</a> != 0;</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span> }</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span> </div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span> <span class="keywordtype">bool</span></div><div class="line"><a name="l00965"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a638c9e5685686a7e26c92fd94c7600a3"> 965</a></span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#aa04c48596065cefa68b6682508b523d6">MediaHandler::dependsOnParent</a>(<a class="code" href="namespacezypp_1_1media.html#a4ea0dee09696f60f0a852362efe41b69">MediaAccessId</a> parentId, <span class="keywordtype">bool</span> exactIdMatch)</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span> {</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <span class="keywordflow">if</span>( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#afb30e86a52f0c39b1e8426c217fb4d99">_parentId</a> != 0)</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  {</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <span class="keywordflow">if</span>(parentId == <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#afb30e86a52f0c39b1e8426c217fb4d99">_parentId</a>)</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span> </div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  <span class="keywordflow">if</span>( !exactIdMatch)</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  {</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  <a class="code" href="classzypp_1_1media_1_1MediaManager.html">MediaManager</a> mm;</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  <a class="code" href="structzypp_1_1media_1_1AttachedMedia.html">AttachedMedia</a> am1 = mm.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a7e2ba7d5b23f471dbf12091ca94d0429">getAttachedMedia</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#afb30e86a52f0c39b1e8426c217fb4d99">_parentId</a>);</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  <a class="code" href="structzypp_1_1media_1_1AttachedMedia.html">AttachedMedia</a> am2 = mm.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a7e2ba7d5b23f471dbf12091ca94d0429">getAttachedMedia</a>(parentId);</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  <span class="keywordflow">if</span>( am1.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a> && am2.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>)</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  {</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  <span class="keywordflow">return</span> am1.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>->equals( *(am2.<a class="code" href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">mediaSource</a>));</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  }</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  }</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  }</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span> }</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span> </div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span> <span class="comment">//</span></div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span> <span class="comment">//</span></div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span> <span class="comment">// METHOD NAME : MediaHandler::provideFile</span></div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span> <span class="comment">//</span></div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span> <span class="comment">//</span></div><div class="line"><a name="l00994"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#ade1170a30334eed80e6d71866caae064"> 994</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ade1170a30334eed80e6d71866caae064">MediaHandler::provideFileCopy</a>(<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> srcFilename,</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> targetFilename , <span class="keyword">const</span> <a class="code" href="classzypp_1_1ByteCount.html">ByteCount</a> &expectedFileSize_r)<span class="keyword"> const</span></div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span> <span class="keyword"></span>{</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  <span class="keywordflow">if</span> ( !<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a380a8ba3241f449352fff09cd7416acc">isAttached</a>() ) {</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#gafeeffe52c8fd59db7c61cf8b02042dbf">INT</a> << <span class="stringliteral">"Media not_attached on provideFileCopy("</span> << srcFilename</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  << <span class="stringliteral">","</span> << targetFilename << <span class="stringliteral">")"</span> << endl;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaNotAttachedException.html">MediaNotAttachedException</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>()));</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  }</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> </div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ac1b5cb7402644dd1e6fd041744f2a9bb">getFileCopy</a>( srcFilename, targetFilename, expectedFileSize_r ); <span class="comment">// pass to concrete handler</span></div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"provideFileCopy("</span> << srcFilename << <span class="stringliteral">","</span> << targetFilename << <span class="stringliteral">")"</span> << endl;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> }</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> </div><div class="line"><a name="l01007"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#adf05f4d3dfecdfaa6b2434fb01a0dfee"> 1007</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#adf05f4d3dfecdfaa6b2434fb01a0dfee">MediaHandler::provideFile</a>(<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> filename , <span class="keyword">const</span> <a class="code" href="classzypp_1_1ByteCount.html">ByteCount</a> &expectedFileSize_r)<span class="keyword"> const</span></div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> <span class="keyword"></span>{</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  <span class="keywordflow">if</span> ( !<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a380a8ba3241f449352fff09cd7416acc">isAttached</a>() ) {</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#gafeeffe52c8fd59db7c61cf8b02042dbf">INT</a> << <span class="stringliteral">"Error: Not attached on provideFile("</span> << filename << <span class="stringliteral">")"</span> << endl;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaNotAttachedException.html">MediaNotAttachedException</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>()));</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  }</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> </div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a57aed18b8b8737d800c2f81fb6c37045">getFile</a>( filename, expectedFileSize_r ); <span class="comment">// pass to concrete handler</span></div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"provideFile("</span> << filename << <span class="stringliteral">")"</span> << endl;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> }</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> </div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> </div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <span class="comment">//</span></div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> <span class="comment">//</span></div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="comment">// METHOD NAME : MediaHandler::provideDir</span></div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> <span class="comment">//</span></div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> <span class="comment">//</span></div><div class="line"><a name="l01027"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#aa2ff80cdad6d4a19e43360dc9b144c10"> 1027</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#aa2ff80cdad6d4a19e43360dc9b144c10">MediaHandler::provideDir</a>( <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> dirname )<span class="keyword"> const</span></div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> <span class="keyword"></span>{</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  <span class="keywordflow">if</span> ( !<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a380a8ba3241f449352fff09cd7416acc">isAttached</a>() ) {</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#gafeeffe52c8fd59db7c61cf8b02042dbf">INT</a> << <span class="stringliteral">"Error: Not attached on provideDir("</span> << dirname << <span class="stringliteral">")"</span> << endl;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaNotAttachedException.html">MediaNotAttachedException</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>()));</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  }</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> </div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ac33fc90c22a8e526908ea0cf6d66face">getDir</a>( dirname, <span class="comment">/*recursive*/</span><span class="keyword">false</span> ); <span class="comment">// pass to concrete handler</span></div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"provideDir("</span> << dirname << <span class="stringliteral">")"</span> << endl;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> }</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> </div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="comment">//</span></div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="comment">//</span></div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="comment">// METHOD NAME : MediaHandler::provideDirTree</span></div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="comment">//</span></div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="comment">//</span></div><div class="line"><a name="l01046"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a1b92f0b82c4a9f8233fa8119a23f9918"> 1046</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a1b92f0b82c4a9f8233fa8119a23f9918">MediaHandler::provideDirTree</a>( <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> dirname )<span class="keyword"> const</span></div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> <span class="keyword"></span>{</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <span class="keywordflow">if</span> ( !<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a380a8ba3241f449352fff09cd7416acc">isAttached</a>() ) {</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#gafeeffe52c8fd59db7c61cf8b02042dbf">INT</a> << <span class="stringliteral">"Error Not attached on provideDirTree("</span> << dirname << <span class="stringliteral">")"</span> << endl;</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaNotAttachedException.html">MediaNotAttachedException</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>()));</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  }</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> </div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ac33fc90c22a8e526908ea0cf6d66face">getDir</a>( dirname, <span class="comment">/*recursive*/</span><span class="keyword">true</span> ); <span class="comment">// pass to concrete handler</span></div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"provideDirTree("</span> << dirname << <span class="stringliteral">")"</span> << endl;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> }</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> </div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> <span class="comment">//</span></div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="comment">//</span></div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="comment">// METHOD NAME : MediaHandler::releasePath</span></div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="comment">//</span></div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> <span class="comment">//</span></div><div class="line"><a name="l01065"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a5f54a96c0705aa977f07372f67bc6ea1"> 1065</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a5f54a96c0705aa977f07372f67bc6ea1">MediaHandler::releasePath</a>( <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> pathname )<span class="keyword"> const</span></div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="keyword"></span>{</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  <span class="keywordflow">if</span> ( ! <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#aebc52267a899f7186f5cc042e9f88f52">_does_download</a> || <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">_attachPoint</a>->empty() )</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> </div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a> info( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">localPath</a>( pathname ) );</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> </div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  <span class="keywordflow">if</span> ( info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a76ad73c87053e421fd00b0b6bbc4ec98">isFile</a>() ) {</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  <a class="code" href="namespacezypp_1_1filesystem.html#a4c64d87548a31ac2d33c378075dd6a12">unlink</a>( info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#af8223f1087bb62c359f03a51fb32a5a1">path</a>() );</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a7438f09a49f2732c9ce366e8454cef26">isDir</a>() ) {</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  <span class="keywordflow">if</span> ( info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#af8223f1087bb62c359f03a51fb32a5a1">path</a>() != <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a937d262b63ede449829c8d3719864edc">localRoot</a>() ) {</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  <a class="code" href="namespacezypp_1_1filesystem.html#a72db515ee4c999779798712405ed25e6">recursive_rmdir</a>( info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#af8223f1087bb62c359f03a51fb32a5a1">path</a>() );</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <a class="code" href="namespacezypp_1_1filesystem.html#afbd373b2ae9d45beea5b240394e4f9f6">clean_dir</a>( info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#af8223f1087bb62c359f03a51fb32a5a1">path</a>() );</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  }</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  }</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> }</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> </div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> <span class="comment">//</span></div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> <span class="comment">//</span></div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> <span class="comment">// METHOD NAME : MediaHandler::dirInfo</span></div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> <span class="comment">//</span></div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> <span class="comment">//</span></div><div class="line"><a name="l01091"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a4a3693746a2c797bf5e70c6177ecb838"> 1091</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a4a3693746a2c797bf5e70c6177ecb838">MediaHandler::dirInfo</a>( std::list<std::string> & retlist,</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & dirname, <span class="keywordtype">bool</span> dots )<span class="keyword"> const</span></div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> <span class="keyword"></span>{</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  retlist.clear();</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> </div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  <span class="keywordflow">if</span> ( !<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a380a8ba3241f449352fff09cd7416acc">isAttached</a>() ) {</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#gafeeffe52c8fd59db7c61cf8b02042dbf">INT</a> << <span class="stringliteral">"Error: Not attached on dirInfo("</span> << dirname << <span class="stringliteral">")"</span> << endl;</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaNotAttachedException.html">MediaNotAttachedException</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>()));</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  }</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> </div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#af506f35396d2fb2e410e0395c7c09d13">getDirInfo</a>( retlist, dirname, dots ); <span class="comment">// pass to concrete handler</span></div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"dirInfo("</span> << dirname << <span class="stringliteral">")"</span> << endl;</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> }</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> </div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> <span class="comment">//</span></div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> <span class="comment">//</span></div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> <span class="comment">// METHOD NAME : MediaHandler::dirInfo</span></div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> <span class="comment">//</span></div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> <span class="comment">//</span></div><div class="line"><a name="l01113"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a98a5367b94fde5ca4f0bfd75e6631b30"> 1113</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a4a3693746a2c797bf5e70c6177ecb838">MediaHandler::dirInfo</a>( <a class="code" href="namespacezypp_1_1filesystem.html#ade46cd05af0a1fa7e5995e321cfb586b">filesystem::DirContent</a> & retlist,</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & dirname, <span class="keywordtype">bool</span> dots )<span class="keyword"> const</span></div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> <span class="keyword"></span>{</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  retlist.clear();</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> </div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  <span class="keywordflow">if</span> ( !<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a380a8ba3241f449352fff09cd7416acc">isAttached</a>() ) {</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#gafeeffe52c8fd59db7c61cf8b02042dbf">INT</a> << <span class="stringliteral">"Error: Not attached on dirInfo("</span> << dirname << <span class="stringliteral">")"</span> << endl;</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaNotAttachedException.html">MediaNotAttachedException</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>()));</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  }</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> </div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#af506f35396d2fb2e410e0395c7c09d13">getDirInfo</a>( retlist, dirname, dots ); <span class="comment">// pass to concrete handler</span></div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"dirInfo("</span> << dirname << <span class="stringliteral">")"</span> << endl;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> }</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> </div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> <span class="comment">//</span></div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <span class="comment">//</span></div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> <span class="comment">// METHOD NAME : MediaHandler::doesFileExist</span></div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> <span class="comment">//</span></div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> <span class="comment">// DESCRIPTION :</span></div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="comment">//</span></div><div class="line"><a name="l01135"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a5cd01dc276cf7c31d0370286b307f0fd"> 1135</a></span> <span class="keywordtype">bool</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a5cd01dc276cf7c31d0370286b307f0fd">MediaHandler::doesFileExist</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & filename )<span class="keyword"> const</span></div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="keyword"></span>{</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  <span class="comment">// TODO do some logging</span></div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  <span class="keywordflow">if</span> ( !<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a380a8ba3241f449352fff09cd7416acc">isAttached</a>() ) {</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#gafeeffe52c8fd59db7c61cf8b02042dbf">INT</a> << <span class="stringliteral">"Error Not attached on doesFileExist("</span> << filename << <span class="stringliteral">")"</span> << endl;</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaNotAttachedException.html">MediaNotAttachedException</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>()));</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>  }</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>  <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a15837d5e67d0cb111bc00dba99945ca8">getDoesFileExist</a>( filename );</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"doesFileExist("</span> << filename << <span class="stringliteral">")"</span> << endl;</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> }</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> </div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> <span class="comment">//</span></div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> <span class="comment">//</span></div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> <span class="comment">// METHOD NAME : MediaHandler::getDirectoryYast</span></div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="comment">//</span></div><div class="line"><a name="l01152"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a872fe19f4d94ec222e0fb880dc2e7520"> 1152</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a872fe19f4d94ec222e0fb880dc2e7520">MediaHandler::getDirectoryYast</a>( std::list<std::string> & retlist,</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & dirname, <span class="keywordtype">bool</span> dots )<span class="keyword"> const</span></div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> <span class="keyword"></span>{</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>  retlist.clear();</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> </div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>  <a class="code" href="namespacezypp_1_1filesystem.html#ade46cd05af0a1fa7e5995e321cfb586b">filesystem::DirContent</a> content;</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a872fe19f4d94ec222e0fb880dc2e7520">getDirectoryYast</a>( content, dirname, dots );</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> </div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>  <span class="comment">// convert to std::list<std::string></span></div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>  <span class="keywordflow">for</span> ( filesystem::DirContent::const_iterator it = content.begin(); it != content.end(); ++it ) {</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>  retlist.push_back( it->name );</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>  }</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> }</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> </div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="comment">//</span></div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> <span class="comment">//</span></div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> <span class="comment">// METHOD NAME : MediaHandler::getDirectoryYast</span></div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> <span class="comment">//</span></div><div class="line"><a name="l01172"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#ae33c2080c4ceab20057e85201dc12e55"> 1172</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a872fe19f4d94ec222e0fb880dc2e7520">MediaHandler::getDirectoryYast</a>( <a class="code" href="namespacezypp_1_1filesystem.html#ade46cd05af0a1fa7e5995e321cfb586b">filesystem::DirContent</a> & retlist,</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>  <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & dirname, <span class="keywordtype">bool</span> dots )<span class="keyword"> const</span></div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="keyword"></span>{</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>  retlist.clear();</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> </div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>  <span class="comment">// look for directory.yast</span></div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> dirFile = dirname + <span class="stringliteral">"directory.yast"</span>;</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a57aed18b8b8737d800c2f81fb6c37045">getFile</a>( dirFile, 0 );</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"provideFile("</span> << dirFile << <span class="stringliteral">"): "</span> << <span class="stringliteral">"OK"</span> << endl;</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> </div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>  <span class="comment">// using directory.yast</span></div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>  ifstream dir( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">localPath</a>( dirFile ).<a class="code" href="namespacezypp.html#a1547a676c9d1f206e0ed614d42d74c2d">asString</a>().c_str() );</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>  <span class="keywordflow">if</span> ( dir.fail() ) {</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a> << <span class="stringliteral">"Unable to load '"</span> << <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">localPath</a>( dirFile ) << <span class="stringliteral">"'"</span> << endl;</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaSystemException.html">MediaSystemException</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>(),</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>  <span class="stringliteral">"Unable to load '"</span> + <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">localPath</a>( dirFile ).<a class="code" href="namespacezypp.html#a1547a676c9d1f206e0ed614d42d74c2d">asString</a>() + <span class="stringliteral">"'"</span>));</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>  }</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> </div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>  <span class="keywordtype">string</span> line;</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>  <span class="keywordflow">while</span>( <a class="code" href="namespacezypp_1_1iostr.html#a9ebc01b7f87a5d078d0ac84d87407804">getline</a>( dir, line ) ) {</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>  <span class="keywordflow">if</span> ( line.empty() ) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>  <span class="keywordflow">if</span> ( line == <span class="stringliteral">"directory.yast"</span> ) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> </div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>  <span class="comment">// Newer directory.yast append '/' to directory names</span></div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>  <span class="comment">// Remaining entries are unspecified, although most probabely files.</span></div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>  <a class="code" href="namespacezypp_1_1filesystem.html#a29a964b2276d62ff455b096f40269896">filesystem::FileType</a> type = <a class="code" href="namespacezypp_1_1filesystem.html#a29a964b2276d62ff455b096f40269896ab21beff377700b678cd12d2de0184fe3">filesystem::FT_NOT_AVAIL</a>;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>  <span class="keywordflow">if</span> ( *line.rbegin() == <span class="charliteral">'/'</span> ) {</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>  line.erase( line.end()-1 );</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>  type = <a class="code" href="namespacezypp_1_1filesystem.html#a29a964b2276d62ff455b096f40269896a2bdaafb83ef187d718972ece2a5f411f">filesystem::FT_DIR</a>;</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>  }</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> </div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>  <span class="keywordflow">if</span> ( dots ) {</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>  <span class="keywordflow">if</span> ( line == <span class="stringliteral">"."</span> || line == <span class="stringliteral">".."</span> ) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>  <span class="keywordflow">if</span> ( *line.begin() == <span class="charliteral">'.'</span> ) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>  }</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> </div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>  retlist.push_back( <a class="code" href="structzypp_1_1filesystem_1_1DirEntry.html">filesystem::DirEntry</a>( line, type ) );</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>  }</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> }</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> </div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> <span class="comment">/******************************************************************</span></div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> <span class="comment">**</span></div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> <span class="comment">**</span></div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="comment">** FUNCTION NAME : operator<<</span></div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <span class="comment">** FUNCTION TYPE : ostream &</span></div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> <span class="comment">*/</span></div><div class="line"><a name="l01219"></a><span class="lineno"><a class="line" href="namespacezypp_1_1media.html#ac530d53016c8c33f386fd5d569c21e89"> 1219</a></span> ostream & <a class="code" href="namespacezypp_1_1media.html#a289b48cff0ddd649e566e79e9eff84c4">operator<<</a>( ostream & <a class="code" href="namespacestr.html">str</a>, <span class="keyword">const</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html">MediaHandler</a> & obj )</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> {</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>  <a class="code" href="namespacestr.html">str</a> << obj.<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>() << ( obj.<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a380a8ba3241f449352fff09cd7416acc">isAttached</a>() ? <span class="stringliteral">""</span> : <span class="stringliteral">" not"</span> )</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>  << <span class="stringliteral">" attached; localRoot \""</span> << obj.<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a937d262b63ede449829c8d3719864edc">localRoot</a>() << <span class="stringliteral">"\""</span>;</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>  <span class="keywordflow">return</span> <a class="code" href="namespacestr.html">str</a>;</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> }</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> </div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> <span class="comment">//</span></div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="comment">//</span></div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> <span class="comment">// METHOD NAME : MediaHandler::getFile</span></div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="comment">//</span></div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="comment">// DESCRIPTION : Asserted that media is attached.</span></div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> <span class="comment">// Default implementation of pure virtual.</span></div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="comment">//</span></div><div class="line"><a name="l01235"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a57aed18b8b8737d800c2f81fb6c37045"> 1235</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a57aed18b8b8737d800c2f81fb6c37045">MediaHandler::getFile</a>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & filename , <span class="keyword">const</span> <a class="code" href="classzypp_1_1ByteCount.html">ByteCount</a> &)<span class="keyword"> const</span></div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="keyword"></span>{</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>  <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a> info( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">localPath</a>( filename ) );</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>  <span class="keywordflow">if</span>( info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a76ad73c87053e421fd00b0b6bbc4ec98">isFile</a>() ) {</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>  }</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> </div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>  <span class="keywordflow">if</span> (info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#abb1afbf5ddd0392d0d0abc25577347d3">isExist</a>())</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaNotAFileException.html">MediaNotAFileException</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>(), <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">localPath</a>(filename)));</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaFileNotFoundException.html">MediaFileNotFoundException</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>(), filename));</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> }</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> </div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> </div><div class="line"><a name="l01249"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#ac1b5cb7402644dd1e6fd041744f2a9bb"> 1249</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ac1b5cb7402644dd1e6fd041744f2a9bb">MediaHandler::getFileCopy</a> (<span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & srcFilename, <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & targetFilename , <span class="keyword">const</span> <a class="code" href="classzypp_1_1ByteCount.html">ByteCount</a> &expectedFileSize_r)<span class="keyword"> const</span></div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <span class="keyword"></span>{</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a57aed18b8b8737d800c2f81fb6c37045">getFile</a>(srcFilename, expectedFileSize_r);</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> </div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>  <span class="keywordflow">if</span> ( <a class="code" href="namespacezypp_1_1iostr.html#a3807dcc209ee089a23589f70c7830b27">copy</a>( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">localPath</a>( srcFilename ), targetFilename ) != 0 ) {</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaWriteException.html">MediaWriteException</a>(targetFilename));</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>  }</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> }</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> </div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> </div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> </div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> <span class="comment">//</span></div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> <span class="comment">//</span></div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> <span class="comment">// METHOD NAME : MediaHandler::getDir</span></div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> <span class="comment">//</span></div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> <span class="comment">// DESCRIPTION : Asserted that media is attached.</span></div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> <span class="comment">// Default implementation of pure virtual.</span></div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> <span class="comment">//</span></div><div class="line"><a name="l01269"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#ac33fc90c22a8e526908ea0cf6d66face"> 1269</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ac33fc90c22a8e526908ea0cf6d66face">MediaHandler::getDir</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & dirname, <span class="keywordtype">bool</span> recurse_r )<span class="keyword"> const</span></div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> <span class="keyword"></span>{</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>  <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a> info( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">localPath</a>( dirname ) );</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>  <span class="keywordflow">if</span>( info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a7438f09a49f2732c9ce366e8454cef26">isDir</a>() ) {</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>  }</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> </div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>  <span class="keywordflow">if</span> (info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#abb1afbf5ddd0392d0d0abc25577347d3">isExist</a>())</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaNotADirException.html">MediaNotADirException</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>(), <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">localPath</a>(dirname)));</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaFileNotFoundException.html">MediaFileNotFoundException</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>(), dirname));</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> }</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> </div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> <span class="comment">//</span></div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> <span class="comment">//</span></div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> <span class="comment">// METHOD NAME : MediaHandler::getDirInfo</span></div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="comment">//</span></div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="comment">// DESCRIPTION : Asserted that media is attached and retlist is empty.</span></div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <span class="comment">// Default implementation of pure virtual.</span></div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> <span class="comment">//</span></div><div class="line"><a name="l01291"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#af506f35396d2fb2e410e0395c7c09d13"> 1291</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#af506f35396d2fb2e410e0395c7c09d13">MediaHandler::getDirInfo</a>( std::list<std::string> & retlist,</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>  <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & dirname, <span class="keywordtype">bool</span> dots )<span class="keyword"> const</span></div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> <span class="keyword"></span>{</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>  <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a> info( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">localPath</a>( dirname ) );</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>  <span class="keywordflow">if</span>( ! info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a7438f09a49f2732c9ce366e8454cef26">isDir</a>() ) {</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaNotADirException.html">MediaNotADirException</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>(), <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">localPath</a>(dirname)));</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>  }</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> </div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> <span class="preprocessor">#if NONREMOTE_DIRECTORY_YAST</span></div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>  <span class="comment">// use directory.yast if available</span></div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>  <span class="keywordflow">try</span> {</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a872fe19f4d94ec222e0fb880dc2e7520">getDirectoryYast</a>( retlist, dirname, dots );</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>  }</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>  <span class="keywordflow">catch</span> (<span class="keyword">const</span> <a class="code" href="classzypp_1_1media_1_1MediaException.html">MediaException</a> & excpt_r)</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>  {</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span> </div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>  <span class="comment">// readdir</span></div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>  <span class="keywordtype">int</span> res = <a class="code" href="namespacezypp_1_1filesystem.html#a424d384472de80e5cc48f5d5662cc859">readdir</a>( retlist, info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#af8223f1087bb62c359f03a51fb32a5a1">path</a>(), dots );</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>  <span class="keywordflow">if</span> ( res )</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>  {</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>  <a class="code" href="classzypp_1_1media_1_1MediaSystemException.html">MediaSystemException</a> nexcpt(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>(), <span class="stringliteral">"readdir failed"</span>);</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> <span class="preprocessor">#if NONREMOTE_DIRECTORY_YAST</span></div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>  nexcpt.<a class="code" href="classzypp_1_1Exception.html#af6a5a1a9527e907e19bd94d61e0dc2be">remember</a>(excpt_r);</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(nexcpt);</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>  }</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span> </div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> <span class="preprocessor">#if NONREMOTE_DIRECTORY_YAST</span></div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>  }</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> </div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> }</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> </div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span> <span class="comment">//</span></div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span> <span class="comment">//</span></div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> <span class="comment">// METHOD NAME : MediaHandler::getDirInfo</span></div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span> <span class="comment">//</span></div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> <span class="comment">// DESCRIPTION : Asserted that media is attached and retlist is empty.</span></div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> <span class="comment">// Default implementation of pure virtual.</span></div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> <span class="comment">//</span></div><div class="line"><a name="l01335"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a408d25a109435e833269b042013111f1"> 1335</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#af506f35396d2fb2e410e0395c7c09d13">MediaHandler::getDirInfo</a>( <a class="code" href="namespacezypp_1_1filesystem.html#ade46cd05af0a1fa7e5995e321cfb586b">filesystem::DirContent</a> & retlist,</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>  <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & dirname, <span class="keywordtype">bool</span> dots )<span class="keyword"> const</span></div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> <span class="keyword"></span>{</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>  <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a> info( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">localPath</a>( dirname ) );</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>  <span class="keywordflow">if</span>( ! info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a7438f09a49f2732c9ce366e8454cef26">isDir</a>() ) {</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaNotADirException.html">MediaNotADirException</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>(), <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">localPath</a>(dirname)));</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>  }</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> </div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span> <span class="preprocessor">#if NONREMOTE_DIRECTORY_YAST</span></div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>  <span class="comment">// use directory.yast if available</span></div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>  <span class="keywordflow">try</span> {</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a872fe19f4d94ec222e0fb880dc2e7520">getDirectoryYast</a>( retlist, dirname, dots );</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>  }</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>  <span class="keywordflow">catch</span> (<span class="keyword">const</span> <a class="code" href="classzypp_1_1media_1_1MediaException.html">MediaException</a> & excpt_r)</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>  {</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span> </div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>  <span class="comment">// readdir</span></div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>  <span class="keywordtype">int</span> res = <a class="code" href="namespacezypp_1_1filesystem.html#a424d384472de80e5cc48f5d5662cc859">readdir</a>( retlist, info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#af8223f1087bb62c359f03a51fb32a5a1">path</a>(), dots );</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>  <span class="keywordflow">if</span> ( res )</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>  {</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>  <a class="code" href="classzypp_1_1media_1_1MediaSystemException.html">MediaSystemException</a> nexcpt(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>(), <span class="stringliteral">"readdir failed"</span>);</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span> <span class="preprocessor">#if NONREMOTE_DIRECTORY_YAST</span></div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>  nexcpt.<a class="code" href="classzypp_1_1Exception.html#af6a5a1a9527e907e19bd94d61e0dc2be">remember</a>(excpt_r);</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(nexcpt);</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>  }</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> <span class="preprocessor">#if NONREMOTE_DIRECTORY_YAST</span></div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>  }</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> }</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> </div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> <span class="comment">//</span></div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> <span class="comment">//</span></div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> <span class="comment">// METHOD NAME : MediaHandler::getDoesFileExist</span></div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span> <span class="comment">// METHOD TYPE : PMError</span></div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span> <span class="comment">//</span></div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span> <span class="comment">// DESCRIPTION : Asserted that file is not a directory</span></div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span> <span class="comment">// Default implementation of pure virtual.</span></div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span> <span class="comment">//</span></div><div class="line"><a name="l01376"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a15837d5e67d0cb111bc00dba99945ca8"> 1376</a></span> <span class="keywordtype">bool</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a15837d5e67d0cb111bc00dba99945ca8">MediaHandler::getDoesFileExist</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & filename )<span class="keyword"> const</span></div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> <span class="keyword"></span>{</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>  <a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html">PathInfo</a> info( <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">localPath</a>( filename ) );</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>  <span class="keywordflow">if</span>( info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#a7438f09a49f2732c9ce366e8454cef26">isDir</a>() ) {</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1media_1_1MediaNotAFileException.html">MediaNotAFileException</a>(<a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">url</a>(), <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">localPath</a>(filename)));</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>  }</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>  <span class="keywordflow">return</span> info.<a class="code" href="classzypp_1_1filesystem_1_1PathInfo.html#abb1afbf5ddd0392d0d0abc25577347d3">isExist</a>();</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span> }</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span> </div><div class="line"><a name="l01385"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a3b5926eae518c1a128031d9e67cb552b"> 1385</a></span> <span class="keywordtype">bool</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a3b5926eae518c1a128031d9e67cb552b">MediaHandler::hasMoreDevices</a>()</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> {</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span> }</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> </div><div class="line"><a name="l01390"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a15e173e1d216b1b864de62ccfc5be634"> 1390</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a15e173e1d216b1b864de62ccfc5be634">MediaHandler::getDetectedDevices</a>(std::vector<std::string> & devices,</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> & index)<span class="keyword"> const</span></div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> <span class="keyword"></span>{</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>  <span class="comment">// clear the vector by default</span></div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>  <span class="keywordflow">if</span> (!devices.empty())</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>  devices.clear();</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>  index = 0;</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> </div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"No devices for this medium"</span> << endl;</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> }</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span> </div><div class="line"><a name="l01401"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#ab21390920ef2607b5ebb50b496a7a585"> 1401</a></span> <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ab21390920ef2607b5ebb50b496a7a585">MediaHandler::setDeltafile</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & filename )<span class="keyword"> const</span></div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span> <span class="keyword"></span>{</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>  <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ab90e158a59f5719f3be626a8082aa8e7">_deltafile</a> = filename;</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span> }</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> </div><div class="line"><a name="l01406"></a><span class="lineno"><a class="line" href="classzypp_1_1media_1_1MediaHandler.html#a1c5216dd5bc011e8fa1e68d005c35637"> 1406</a></span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#a1c5216dd5bc011e8fa1e68d005c35637">MediaHandler::deltafile</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>  <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1media_1_1MediaHandler.html#ab90e158a59f5719f3be626a8082aa8e7">_deltafile</a>;</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> }</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span> </div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>  } <span class="comment">// namespace media</span></div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span> } <span class="comment">// namespace zypp</span></div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> <span class="comment">// vim: set ts=8 sts=2 sw=2 ai noet:</span></div><div class="ttc" id="classzypp_1_1Url_html_a095ef9bbb54284f4399b5f84659a5341"><div class="ttname"><a href="classzypp_1_1Url.html#a095ef9bbb54284f4399b5f84659a5341">zypp::Url::getScheme</a></div><div class="ttdeci">std::string getScheme() const</div><div class="ttdoc">Returns the scheme name of the URL.</div><div class="ttdef"><b>Definition:</b> <a href="Url_8cc_source.html#l00527">Url.cc:527</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaNotAttachedException_html"><div class="ttname"><a href="classzypp_1_1media_1_1MediaNotAttachedException.html">zypp::media::MediaNotAttachedException</a></div><div class="ttdef"><b>Definition:</b> <a href="MediaException_8h_source.html#l00176">MediaException.h:176</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1AttachPoint_html"><div class="ttname"><a href="classzypp_1_1media_1_1AttachPoint.html">zypp::media::AttachPoint</a></div><div class="ttdoc">Attach point of a media source.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSource_8h_source.html#l00105">MediaSource.h:105</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a92eb2cd9b9d8329154ea4c7f7a7b6e66"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a92eb2cd9b9d8329154ea4c7f7a7b6e66">zypp::media::MediaManager::findAttachedMedia</a></div><div class="ttdeci">AttachedMedia findAttachedMedia(const MediaSourceRef &media) const</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00939">MediaManager.cc:939</a></div></div> <div class="ttc" id="Gettext_8h_html"><div class="ttname"><a href="Gettext_8h.html">Gettext.h</a></div><div class="ttdoc">Interface to gettext.</div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a2b6b7e4c7386ef811086f5b111468059"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a2b6b7e4c7386ef811086f5b111468059">zypp::media::MediaHandler::resetParentId</a></div><div class="ttdeci">void resetParentId()</div><div class="ttdoc">Called in case, where the media manager takes over the destruction of the parent id (e....</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00116">MediaHandler.cc:116</a></div></div> <div class="ttc" id="group__ZYPP__BASE__LOGGER__MACROS_html_ga552f8ec9d8e5b4efa04839a129104818"><div class="ttname"><a href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a></div><div class="ttdeci">#define MIL</div><div class="ttdef"><b>Definition:</b> <a href="Logger_8h_source.html#l00079">Logger.h:79</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1TmpPath_html_af64fe21abd1b1d54feb85b61d8cf4957"><div class="ttname"><a href="classzypp_1_1filesystem_1_1TmpPath.html#af64fe21abd1b1d54feb85b61d8cf4957">zypp::filesystem::TmpPath::autoCleanup</a></div><div class="ttdeci">bool autoCleanup() const</div><div class="ttdoc">Whether path is valid and deleted when the last reference drops.</div><div class="ttdef"><b>Definition:</b> <a href="TmpPath_8cc_source.html#l00163">TmpPath.cc:163</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1PathInfo_html_a094ab06f1404e8bc78ba695f7e868000"><div class="ttname"><a href="classzypp_1_1filesystem_1_1PathInfo.html#a094ab06f1404e8bc78ba695f7e868000">zypp::filesystem::PathInfo::dev</a></div><div class="ttdeci">dev_t dev() const</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00359">PathInfo.h:359</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaBadAttachPointException_html"><div class="ttname"><a href="classzypp_1_1media_1_1MediaBadAttachPointException.html">zypp::media::MediaBadAttachPointException</a></div><div class="ttdef"><b>Definition:</b> <a href="MediaException_8h_source.html#l00190">MediaException.h:190</a></div></div> <div class="ttc" id="structzypp_1_1filesystem_1_1DirEntry_html"><div class="ttname"><a href="structzypp_1_1filesystem_1_1DirEntry.html">zypp::filesystem::DirEntry</a></div><div class="ttdoc">Listentry returned by readdir.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00532">PathInfo.h:532</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1Mount_html"><div class="ttname"><a href="classzypp_1_1media_1_1Mount.html">zypp::media::Mount</a></div><div class="ttdoc">Interface to the mount program.</div><div class="ttdef"><b>Definition:</b> <a href="Mount_8h_source.html#l00069">Mount.h:69</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1PathInfo_html_af8223f1087bb62c359f03a51fb32a5a1"><div class="ttname"><a href="classzypp_1_1filesystem_1_1PathInfo.html#af8223f1087bb62c359f03a51fb32a5a1">zypp::filesystem::PathInfo::path</a></div><div class="ttdeci">const Pathname & path() const</div><div class="ttdoc">Return current Pathname.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00246">PathInfo.h:246</a></div></div> <div class="ttc" id="namespacezypp_html_a1547a676c9d1f206e0ed614d42d74c2d"><div class="ttname"><a href="namespacezypp.html#a1547a676c9d1f206e0ed614d42d74c2d">zypp::asString</a></div><div class="ttdeci">std::string asString(const DefaultIntegral< Tp, TInitial > &obj)</div><div class="ttdef"><b>Definition:</b> <a href="DefaultIntegral_8h_source.html#l00098">DefaultIntegral.h:98</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_1ZConfig_html_a9b986f2c40a1aa9e1a2aea3d299210d1"><div class="ttname"><a href="classzypp_1_1ZConfig.html#a9b986f2c40a1aa9e1a2aea3d299210d1">zypp::ZConfig::instance</a></div><div class="ttdeci">static ZConfig & instance()</div><div class="ttdoc">Singleton ctor.</div><div class="ttdef"><b>Definition:</b> <a href="solver_2detail_2Resolver_8cc_source.html#l00130">Resolver.cc:130</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_ac33fc90c22a8e526908ea0cf6d66face"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#ac33fc90c22a8e526908ea0cf6d66face">zypp::media::MediaHandler::getDir</a></div><div class="ttdeci">virtual void getDir(const Pathname &dirname, bool recurse_r) const =0</div><div class="ttdoc">Call concrete handler to provide directory content (not recursive!) below attach point.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01269">MediaHandler.cc:1269</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1PathInfo_html_a76ad73c87053e421fd00b0b6bbc4ec98"><div class="ttname"><a href="classzypp_1_1filesystem_1_1PathInfo.html#a76ad73c87053e421fd00b0b6bbc4ec98">zypp::filesystem::PathInfo::isFile</a></div><div class="ttdeci">bool isFile() const</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00289">PathInfo.h:289</a></div></div> <div class="ttc" id="structzypp_1_1RW__pointer_html_a676dccd155c866ccebeafcd07d30733f"><div class="ttname"><a href="structzypp_1_1RW__pointer.html#a676dccd155c866ccebeafcd07d30733f">zypp::RW_pointer::reset</a></div><div class="ttdeci">void reset()</div><div class="ttdef"><b>Definition:</b> <a href="PtrTypes_8h_source.html#l00309">PtrTypes.h:309</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a3cf5c598353eab19fa2dd41e57bc7d4d"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a3cf5c598353eab19fa2dd41e57bc7d4d">zypp::media::MediaHandler::_attachPointHint</a></div><div class="ttdeci">AttachPoint _attachPointHint</div><div class="ttdoc">The user provided attach preferred point.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8h_source.html#l00085">MediaHandler.h:85</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a210592896403f7905b55660fefc27fba"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a210592896403f7905b55660fefc27fba">zypp::media::MediaHandler::checkAttachPoint</a></div><div class="ttdeci">virtual bool checkAttachPoint(const Pathname &apoint) const</div><div class="ttdoc">Verify if the specified directory as attach point (root) as requires by the particular media handler ...</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00885">MediaHandler.cc:885</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_ae85c49445d75f006e6b5261faebbcc5a"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#ae85c49445d75f006e6b5261faebbcc5a">zypp::media::MediaHandler::attachedMedia</a></div><div class="ttdeci">AttachedMedia attachedMedia() const</div><div class="ttdoc">Returns the attached media.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00479">MediaHandler.cc:479</a></div></div> <div class="ttc" id="classzypp_1_1ByteCount_html"><div class="ttname"><a href="classzypp_1_1ByteCount.html">zypp::ByteCount</a></div><div class="ttdoc">Store and operate with byte count.</div><div class="ttdef"><b>Definition:</b> <a href="ByteCount_8h_source.html#l00030">ByteCount.h:30</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_acbfb21d3b0e171b66db29a84575e02e9"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#acbfb21d3b0e171b66db29a84575e02e9">zypp::media::MediaHandler::_relativeRoot</a></div><div class="ttdeci">Pathname _relativeRoot</div><div class="ttdoc">The relative root directory of the data on the media.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8h_source.html#l00092">MediaHandler.h:92</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a1c5216dd5bc011e8fa1e68d005c35637"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a1c5216dd5bc011e8fa1e68d005c35637">zypp::media::MediaHandler::deltafile</a></div><div class="ttdeci">Pathname deltafile() const</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01406">MediaHandler.cc:1406</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1AttachPoint_html_a8e6cd04f2950019227902bb27a01565e"><div class="ttname"><a href="classzypp_1_1media_1_1AttachPoint.html#a8e6cd04f2950019227902bb27a01565e">zypp::media::AttachPoint::path</a></div><div class="ttdeci">Pathname path</div><div class="ttdoc">The path name (mount point).</div><div class="ttdef"><b>Definition:</b> <a href="MediaSource_8h_source.html#l00116">MediaSource.h:116</a></div></div> <div class="ttc" id="namespacezypp_1_1media_html_a15171bbedd1533efec973d9fb23319be"><div class="ttname"><a href="namespacezypp_1_1media.html#a15171bbedd1533efec973d9fb23319be">zypp::media::MediaSourceRef</a></div><div class="ttdeci">zypp::RW_pointer< MediaSource > MediaSourceRef</div><div class="ttdef"><b>Definition:</b> <a href="MediaSource_8h_source.html#l00124">MediaSource.h:124</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a40ba095706505a02480be10c57fedae6"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a40ba095706505a02480be10c57fedae6">zypp::media::MediaHandler::getRealPath</a></div><div class="ttdeci">static std::string getRealPath(const std::string &path)</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00122">MediaHandler.cc:122</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1PathInfo_html_a7438f09a49f2732c9ce366e8454cef26"><div class="ttname"><a href="classzypp_1_1filesystem_1_1PathInfo.html#a7438f09a49f2732c9ce366e8454cef26">zypp::filesystem::PathInfo::isDir</a></div><div class="ttdeci">bool isDir() const</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00290">PathInfo.h:290</a></div></div> <div class="ttc" id="group__ZYPP__BASE__LOGGER__MACROS_html_gafeeffe52c8fd59db7c61cf8b02042dbf"><div class="ttname"><a href="group__ZYPP__BASE__LOGGER__MACROS.html#gafeeffe52c8fd59db7c61cf8b02042dbf">INT</a></div><div class="ttdeci">#define INT</div><div class="ttdef"><b>Definition:</b> <a href="Logger_8h_source.html#l00083">Logger.h:83</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a72f13c6bea40f42f2ac853f36a379e9c"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a72f13c6bea40f42f2ac853f36a379e9c">zypp::media::MediaHandler::_attachPrefix</a></div><div class="ttdeci">static Pathname _attachPrefix</div><div class="ttdoc">User defined default attach point prefix.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8h_source.html#l00061">MediaHandler.h:61</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a87c6c31ca9900d473167ab7468e0b008"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a87c6c31ca9900d473167ab7468e0b008">zypp::media::MediaHandler::setAttachPoint</a></div><div class="ttdeci">void setAttachPoint(const Pathname &path, bool temp)</div><div class="ttdoc">Set a new attach point.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00231">MediaHandler.cc:231</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a4a3693746a2c797bf5e70c6177ecb838"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a4a3693746a2c797bf5e70c6177ecb838">zypp::media::MediaHandler::dirInfo</a></div><div class="ttdeci">void dirInfo(std::list< std::string > &retlist, const Pathname &dirname, bool dots=true) const</div><div class="ttdoc">Return content of directory on media via retlist.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01091">MediaHandler.cc:1091</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a3f5dd6f99ffae37687c5148246255e85"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a3f5dd6f99ffae37687c5148246255e85">zypp::media::MediaHandler::disconnectFrom</a></div><div class="ttdeci">virtual void disconnectFrom()</div><div class="ttdoc">Call concrete handler to disconnect media.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8h_source.html#l00326">MediaHandler.h:326</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1PathInfo_html_a3777cfd227cd25892c80f9d9d7ae60c4"><div class="ttname"><a href="classzypp_1_1filesystem_1_1PathInfo.html#a3777cfd227cd25892c80f9d9d7ae60c4">zypp::filesystem::PathInfo::mtime</a></div><div class="ttdeci">time_t mtime() const</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00376">PathInfo.h:376</a></div></div> <div class="ttc" id="namespacezypp_1_1filesystem_html_afbd373b2ae9d45beea5b240394e4f9f6"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#afbd373b2ae9d45beea5b240394e4f9f6">zypp::filesystem::clean_dir</a></div><div class="ttdeci">int clean_dir(const Pathname &path)</div><div class="ttdoc">Like 'rm -r DIR/ *'.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00434">PathInfo.cc:434</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a010623da29865f9e33f602282dae7068"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a010623da29865f9e33f602282dae7068">zypp::media::MediaHandler::isUseableAttachPoint</a></div><div class="ttdeci">bool isUseableAttachPoint(const Pathname &path, bool mtab=true) const</div><div class="ttdoc">Ask media manager, if the specified path is already used as attach point or if there are another atta...</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00447">MediaHandler.cc:447</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="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdef"><b>Definition:</b> <a href="Arch_8h_source.html#l00344">Arch.h:344</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1TmpPath_html_a475efb7dd1966b7b1e1bd498dfa5ef2d"><div class="ttname"><a href="classzypp_1_1filesystem_1_1TmpPath.html#a475efb7dd1966b7b1e1bd498dfa5ef2d">zypp::filesystem::TmpPath::defaultLocation</a></div><div class="ttdeci">static const Pathname & defaultLocation()</div><div class="ttdef"><b>Definition:</b> <a href="TmpPath_8cc_source.html#l00157">TmpPath.cc:157</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_ab90e158a59f5719f3be626a8082aa8e7"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#ab90e158a59f5719f3be626a8082aa8e7">zypp::media::MediaHandler::_deltafile</a></div><div class="ttdeci">Pathname _deltafile</div><div class="ttdoc">file usable for delta downloads</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8h_source.html#l00104">MediaHandler.h:104</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1AttachPoint_html_ad68218d64e73af4f3bb2486f3eeb12c3"><div class="ttname"><a href="classzypp_1_1media_1_1AttachPoint.html#ad68218d64e73af4f3bb2486f3eeb12c3">zypp::media::AttachPoint::temp</a></div><div class="ttdeci">bool temp</div><div class="ttdoc">If it was created temporary.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSource_8h_source.html#l00117">MediaSource.h:117</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_1filesystem_1_1TmpPath_html_a6891667fdbc2f2aa70a5f97c66422786"><div class="ttname"><a href="classzypp_1_1filesystem_1_1TmpPath.html#a6891667fdbc2f2aa70a5f97c66422786">zypp::filesystem::TmpPath::path</a></div><div class="ttdeci">Pathname path() const</div><div class="ttdef"><b>Definition:</b> <a href="TmpPath_8cc_source.html#l00146">TmpPath.cc:146</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_aa2ff80cdad6d4a19e43360dc9b144c10"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#aa2ff80cdad6d4a19e43360dc9b144c10">zypp::media::MediaHandler::provideDir</a></div><div class="ttdeci">void provideDir(Pathname dirname) const</div><div class="ttdoc">Use concrete handler to provide directory denoted by path below 'localRoot' (not recursive!...</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01027">MediaHandler.cc:1027</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a5f54a96c0705aa977f07372f67bc6ea1"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a5f54a96c0705aa977f07372f67bc6ea1">zypp::media::MediaHandler::releasePath</a></div><div class="ttdeci">void releasePath(Pathname pathname) const</div><div class="ttdoc">Remove pathname below localRoot IFF handler downloads files to the local filesystem.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01065">MediaHandler.cc:1065</a></div></div> <div class="ttc" id="structzypp_1_1RW__pointer_html_a5fcff6961a3ffbbc7f5d566f6374b98d"><div class="ttname"><a href="structzypp_1_1RW__pointer.html#a5fcff6961a3ffbbc7f5d566f6374b98d">zypp::RW_pointer::use_count</a></div><div class="ttdeci">long use_count() const</div><div class="ttdef"><b>Definition:</b> <a href="PtrTypes_8h_source.html#l00346">PtrTypes.h:346</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_ab21390920ef2607b5ebb50b496a7a585"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#ab21390920ef2607b5ebb50b496a7a585">zypp::media::MediaHandler::setDeltafile</a></div><div class="ttdeci">void setDeltafile(const Pathname &filename=Pathname()) const</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01401">MediaHandler.cc:1401</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1PathInfo_html_a844ac30dcb5f8ee4d1cfaeef7ad0978c"><div class="ttname"><a href="classzypp_1_1filesystem_1_1PathInfo.html#a844ac30dcb5f8ee4d1cfaeef7ad0978c">zypp::filesystem::PathInfo::devMinor</a></div><div class="ttdeci">unsigned int devMinor() const</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00252">PathInfo.cc:252</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a5cd01dc276cf7c31d0370286b307f0fd"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a5cd01dc276cf7c31d0370286b307f0fd">zypp::media::MediaHandler::doesFileExist</a></div><div class="ttdeci">bool doesFileExist(const Pathname &filename) const</div><div class="ttdoc">check if a file exists</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01135">MediaHandler.cc:1135</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaWriteException_html"><div class="ttname"><a href="classzypp_1_1media_1_1MediaWriteException.html">zypp::media::MediaWriteException</a></div><div class="ttdef"><b>Definition:</b> <a href="MediaException_8h_source.html#l00162">MediaException.h:162</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a84980af7ffd1aab5d7fd15f6eb58c228"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a84980af7ffd1aab5d7fd15f6eb58c228">zypp::media::MediaHandler::checkAttached</a></div><div class="ttdeci">bool checkAttached(bool matchMountFs) const</div><div class="ttdoc">Check actual mediaSource attachment against the current mount table of the system.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00510">MediaHandler.cc:510</a></div></div> <div class="ttc" id="group__ZYPP__BASE__LOGGER__MACROS_html_ga735563036dced0b7d6cc98f97ea4978b"><div class="ttname"><a href="group__ZYPP__BASE__LOGGER__MACROS.html#ga735563036dced0b7d6cc98f97ea4978b">ERR</a></div><div class="ttdeci">#define ERR</div><div class="ttdef"><b>Definition:</b> <a href="Logger_8h_source.html#l00081">Logger.h:81</a></div></div> <div class="ttc" id="namespacezypp_1_1media_html_a4ea0dee09696f60f0a852362efe41b69"><div class="ttname"><a href="namespacezypp_1_1media.html#a4ea0dee09696f60f0a852362efe41b69">zypp::media::MediaAccessId</a></div><div class="ttdeci">unsigned int MediaAccessId</div><div class="ttdoc">Media manager access Id type.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSource_8h_source.html#l00029">MediaSource.h:29</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a0b185f0fcfa17038ddc024b291fc4726"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a0b185f0fcfa17038ddc024b291fc4726">zypp::media::MediaHandler::attachTo</a></div><div class="ttdeci">virtual void attachTo(bool next=false)=0</div><div class="ttdoc">Call concrete handler to attach the media.</div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_ac1b5cb7402644dd1e6fd041744f2a9bb"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#ac1b5cb7402644dd1e6fd041744f2a9bb">zypp::media::MediaHandler::getFileCopy</a></div><div class="ttdeci">virtual void getFileCopy(const Pathname &srcFilename, const Pathname &targetFilename, const ByteCount &expectedFileSize_r) const</div><div class="ttdoc">Call concrete handler to provide a file under a different place in the file system (usually not under...</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01249">MediaHandler.cc:1249</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a72424046f1d92ec6e59f72275c4b1ca8"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a72424046f1d92ec6e59f72275c4b1ca8">zypp::media::MediaHandler::localPath</a></div><div class="ttdeci">Pathname localPath(const Pathname &pathname) const</div><div class="ttdoc">Files provided will be available at 'localPath(filename)'.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00701">MediaHandler.cc:701</a></div></div> <div class="ttc" id="namespacezypp_1_1media_html_a289b48cff0ddd649e566e79e9eff84c4"><div class="ttname"><a href="namespacezypp_1_1media.html#a289b48cff0ddd649e566e79e9eff84c4">zypp::media::operator<<</a></div><div class="ttdeci">std::ostream & operator<<(std::ostream &str, const MediaAccess &obj)</div><div class="ttdef"><b>Definition:</b> <a href="MediaAccess_8cc_source.html#l00482">MediaAccess.cc:482</a></div></div> <div class="ttc" id="classzypp_1_1Date_html_a7737bbe7ade5f2f44be0f610b8d82390"><div class="ttname"><a href="classzypp_1_1Date.html#a7737bbe7ade5f2f44be0f610b8d82390">zypp::Date::month</a></div><div class="ttdeci">static const ValueType month</div><div class="ttdef"><b>Definition:</b> <a href="Date_8h_source.html#l00049">Date.h:49</a></div></div> <div class="ttc" id="namespacezypp_1_1filesystem_html_a370ac1ebc62bbdda2626d1560542665a"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a370ac1ebc62bbdda2626d1560542665a">zypp::filesystem::is_empty_dir</a></div><div class="ttdeci">int is_empty_dir(const Pathname &path_r)</div><div class="ttdoc">Check if the specified directory is empty.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00641">PathInfo.cc:641</a></div></div> <div class="ttc" id="classzypp_1_1Exception_html_af6a5a1a9527e907e19bd94d61e0dc2be"><div class="ttname"><a href="classzypp_1_1Exception.html#af6a5a1a9527e907e19bd94d61e0dc2be">zypp::Exception::remember</a></div><div class="ttdeci">void remember(const Exception &old_r)</div><div class="ttdoc">Store an other Exception as history.</div><div class="ttdef"><b>Definition:</b> <a href="Exception_8cc_source.html#l00105">Exception.cc:105</a></div></div> <div class="ttc" id="classzypp_1_1ZConfig_html_a3f311c896747a2d54dd184c9ce5a6173"><div class="ttname"><a href="classzypp_1_1ZConfig.html#a3f311c896747a2d54dd184c9ce5a6173">zypp::ZConfig::download_mediaMountdir</a></div><div class="ttdeci">Pathname download_mediaMountdir() const</div><div class="ttdoc">Path where media are preferably mounted or downloaded.</div><div class="ttdef"><b>Definition:</b> <a href="ZConfig_8cc_source.html#l01050">ZConfig.cc:1050</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1Pathname_html_aaf4388add8c0f9294a7b15f0614f7656"><div class="ttname"><a href="classzypp_1_1filesystem_1_1Pathname.html#aaf4388add8c0f9294a7b15f0614f7656">zypp::filesystem::Pathname::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdoc">Test for an empty path.</div><div class="ttdef"><b>Definition:</b> <a href="Pathname_8h_source.html#l00113">Pathname.h:113</a></div></div> <div class="ttc" id="group__ZYPP__THROW_html_ga08d9b1a11fa29455c0419afa1d186887"><div class="ttname"><a href="group__ZYPP__THROW.html#ga08d9b1a11fa29455c0419afa1d186887">ZYPP_RETHROW</a></div><div class="ttdeci">#define ZYPP_RETHROW(EXCPT)</div><div class="ttdoc">Drops a logline and rethrows, updating the CodeLocation.</div><div class="ttdef"><b>Definition:</b> <a href="Exception_8h_source.html#l00400">Exception.h:400</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a224612722e60fca3dd47cf0b63531242"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a224612722e60fca3dd47cf0b63531242">zypp::media::MediaHandler::_mediaSource</a></div><div class="ttdeci">MediaSourceRef _mediaSource</div><div class="ttdoc">The attached media source description reference.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8h_source.html#l00067">MediaHandler.h:67</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_ae514ef63581f2c0097d3e2d2bdcbdfc7"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#ae514ef63581f2c0097d3e2d2bdcbdfc7">zypp::media::MediaHandler::releaseFrom</a></div><div class="ttdeci">virtual void releaseFrom(const std::string &ejectDev="")=0</div><div class="ttdoc">Call concrete handler to release the media.</div></div> <div class="ttc" id="structzypp_1_1media_1_1AttachedMedia_html_a88490a2ee6865c34353660a0e7d2b691"><div class="ttname"><a href="structzypp_1_1media_1_1AttachedMedia.html#a88490a2ee6865c34353660a0e7d2b691">zypp::media::AttachedMedia::attachPoint</a></div><div class="ttdeci">AttachPointRef attachPoint</div><div class="ttdef"><b>Definition:</b> <a href="MediaSource_8h_source.html#l00145">MediaSource.h:145</a></div></div> <div class="ttc" id="namespacezypp_1_1iostr_html_a9ebc01b7f87a5d078d0ac84d87407804"><div class="ttname"><a href="namespacezypp_1_1iostr.html#a9ebc01b7f87a5d078d0ac84d87407804">zypp::iostr::getline</a></div><div class="ttdeci">std::string getline(std::istream &str)</div><div class="ttdoc">Read one line from stream.</div><div class="ttdef"><b>Definition:</b> <a href="IOStream_8cc_source.html#l00033">IOStream.cc:33</a></div></div> <div class="ttc" id="namespacezypp_1_1media_html_a99d4d6dd3b34a8f813d5e19e889ac4bd"><div class="ttname"><a href="namespacezypp_1_1media.html#a99d4d6dd3b34a8f813d5e19e889ac4bd">zypp::media::AttachPointRef</a></div><div class="ttdeci">zypp::RW_pointer< AttachPoint > AttachPointRef</div><div class="ttdef"><b>Definition:</b> <a href="MediaSource_8h_source.html#l00125">MediaSource.h:125</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a1b92f0b82c4a9f8233fa8119a23f9918"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a1b92f0b82c4a9f8233fa8119a23f9918">zypp::media::MediaHandler::provideDirTree</a></div><div class="ttdeci">void provideDirTree(Pathname dirname) const</div><div class="ttdoc">Use concrete handler to provide directory tree denoted by path below 'localRoot' (recursive!...</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01046">MediaHandler.cc:1046</a></div></div> <div class="ttc" id="namespacezypp_html_aca13105e2531a707430f1204abcc0039"><div class="ttname"><a href="namespacezypp.html#aca13105e2531a707430f1204abcc0039">zypp::dumpRange</a></div><div class="ttdeci">std::ostream & dumpRange(std::ostream &str, TIterator begin, TIterator end, const std::string &intro="{", const std::string &pfx="\n ", const std::string &sep="\n ", const std::string &sfx="\n", const std::string &extro="}")</div><div class="ttdoc">Print range defined by iterators (multiline style).</div><div class="ttdef"><b>Definition:</b> <a href="LogTools_8h_source.html#l00091">LogTools.h:91</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaNotAFileException_html"><div class="ttname"><a href="classzypp_1_1media_1_1MediaNotAFileException.html">zypp::media::MediaNotAFileException</a></div><div class="ttdef"><b>Definition:</b> <a href="MediaException_8h_source.html#l00235">MediaException.h:235</a></div></div> <div class="ttc" id="structzypp_1_1media_1_1AttachedMedia_html_a28d43e50d3499387f3374fd186a16642"><div class="ttname"><a href="structzypp_1_1media_1_1AttachedMedia.html#a28d43e50d3499387f3374fd186a16642">zypp::media::AttachedMedia::mediaSource</a></div><div class="ttdeci">MediaSourceRef mediaSource</div><div class="ttdef"><b>Definition:</b> <a href="MediaSource_8h_source.html#l00144">MediaSource.h:144</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1TmpDir_html"><div class="ttname"><a href="classzypp_1_1filesystem_1_1TmpDir.html">zypp::filesystem::TmpDir</a></div><div class="ttdoc">Provide a new empty temporary directory and recursively delete it when no longer needed.</div><div class="ttdef"><b>Definition:</b> <a href="TmpPath_8h_source.html#l00177">TmpPath.h:177</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html">zypp::media::MediaHandler</a></div><div class="ttdoc">Abstract base class for 'physical' MediaHandler like MediaCD, etc.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8h_source.html#l00045">MediaHandler.h:45</a></div></div> <div class="ttc" id="structzypp_1_1media_1_1AttachedMedia_html"><div class="ttname"><a href="structzypp_1_1media_1_1AttachedMedia.html">zypp::media::AttachedMedia</a></div><div class="ttdoc">A simple structure containing references to a media source and its attach point.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSource_8h_source.html#l00133">MediaSource.h:133</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_aa04c48596065cefa68b6682508b523d6"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#aa04c48596065cefa68b6682508b523d6">zypp::media::MediaHandler::dependsOnParent</a></div><div class="ttdeci">bool dependsOnParent()</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00959">MediaHandler.cc:959</a></div></div> <div class="ttc" id="namespacezypp_1_1filesystem_html_a4c64d87548a31ac2d33c378075dd6a12"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a4c64d87548a31ac2d33c378075dd6a12">zypp::filesystem::unlink</a></div><div class="ttdeci">int unlink(const Pathname &path)</div><div class="ttdoc">Like 'unlink'.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00653">PathInfo.cc:653</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a7cfb708dcbc4d3d8f8d8d152258fbb93"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a7cfb708dcbc4d3d8f8d8d152258fbb93">zypp::media::MediaHandler::_url</a></div><div class="ttdeci">const Url _url</div><div class="ttdoc">Url to handle.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8h_source.html#l00110">MediaHandler.h:110</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a6fbdb4561add8d76085ff4c173bd6025"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a6fbdb4561add8d76085ff4c173bd6025">zypp::media::MediaHandler::setMediaSource</a></div><div class="ttdeci">void setMediaSource(const MediaSourceRef &ref)</div><div class="ttdoc">Set new media source reference.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00463">MediaHandler.cc:463</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1Pathname_html_a91a822e47df9fa6f484a7b771a0b3c94"><div class="ttname"><a href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">zypp::filesystem::Pathname::asString</a></div><div class="ttdeci">const std::string & asString() const</div><div class="ttdoc">String representation.</div><div class="ttdef"><b>Definition:</b> <a href="Pathname_8h_source.html#l00090">Pathname.h:90</a></div></div> <div class="ttc" id="MediaManager_8h_html"><div class="ttname"><a href="MediaManager_8h.html">MediaManager.h</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1PathInfo_html_abb1afbf5ddd0392d0d0abc25577347d3"><div class="ttname"><a href="classzypp_1_1filesystem_1_1PathInfo.html#abb1afbf5ddd0392d0d0abc25577347d3">zypp::filesystem::PathInfo::isExist</a></div><div class="ttdeci">bool isExist() const</div><div class="ttdoc">Return whether valid stat info exists.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00281">PathInfo.h:281</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaException_html"><div class="ttname"><a href="classzypp_1_1media_1_1MediaException.html">zypp::media::MediaException</a></div><div class="ttdoc">Just inherits Exception to separate media exceptions.</div><div class="ttdef"><b>Definition:</b> <a href="MediaException_8h_source.html#l00035">MediaException.h:35</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaSystemException_html"><div class="ttname"><a href="classzypp_1_1media_1_1MediaSystemException.html">zypp::media::MediaSystemException</a></div><div class="ttdef"><b>Definition:</b> <a href="MediaException_8h_source.html#l00218">MediaException.h:218</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a2219a3357a555170a465b2f00971581c"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a2219a3357a555170a465b2f00971581c">zypp::media::MediaHandler::disconnect</a></div><div class="ttdeci">void disconnect()</div><div class="ttdoc">Use concrete handler to isconnect media.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00724">MediaHandler.cc:724</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a2755201e8211e907f804920c3121590c"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a2755201e8211e907f804920c3121590c">zypp::media::MediaHandler::attach</a></div><div class="ttdeci">void attach(bool next)</div><div class="ttdoc">Use concrete handler to attach the media.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00670">MediaHandler.cc:670</a></div></div> <div class="ttc" id="ZConfig_8h_html"><div class="ttname"><a href="ZConfig_8h.html">ZConfig.h</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_adcad705a81dc677483a77d4e6d8c96d9"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#adcad705a81dc677483a77d4e6d8c96d9">zypp::media::MediaHandler::isSharedMedia</a></div><div class="ttdeci">bool isSharedMedia() const</div><div class="ttdoc">Returns a hint if the media is shared or not.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00496">MediaHandler.cc:496</a></div></div> <div class="ttc" id="namespacezypp_1_1filesystem_html_a72db515ee4c999779798712405ed25e6"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a72db515ee4c999779798712405ed25e6">zypp::filesystem::recursive_rmdir</a></div><div class="ttdeci">int recursive_rmdir(const Pathname &path)</div><div class="ttdoc">Like 'rm -r DIR'.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00413">PathInfo.cc:413</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_ab178673dbbc41cdc6e1713720edfbd64"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#ab178673dbbc41cdc6e1713720edfbd64">zypp::media::MediaHandler::~MediaHandler</a></div><div class="ttdeci">virtual ~MediaHandler()</div><div class="ttdoc">Contolling MediaAccess takes care, that attached media is released prior to deleting this.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00106">MediaHandler.cc:106</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a625a50ce49e43114b82295a63013bb47"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a625a50ce49e43114b82295a63013bb47">zypp::media::MediaHandler::setAttachPrefix</a></div><div class="ttdeci">static bool setAttachPrefix(const Pathname &attach_prefix)</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00314">MediaHandler.cc:314</a></div></div> <div class="ttc" id="group__ZYPP__BASE__LOGGER__MACROS_html_ga9423380a92639b296ea0a984ea7e1c6b"><div class="ttname"><a href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a></div><div class="ttdeci">#define WAR</div><div class="ttdef"><b>Definition:</b> <a href="Logger_8h_source.html#l00080">Logger.h:80</a></div></div> <div class="ttc" id="namespacezypp_1_1filesystem_html_ade46cd05af0a1fa7e5995e321cfb586b"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#ade46cd05af0a1fa7e5995e321cfb586b">zypp::filesystem::DirContent</a></div><div class="ttdeci">std::list< DirEntry > DirContent</div><div class="ttdoc">Returned by readdir.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00547">PathInfo.h:547</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaNotEjectedException_html"><div class="ttname"><a href="classzypp_1_1media_1_1MediaNotEjectedException.html">zypp::media::MediaNotEjectedException</a></div><div class="ttdef"><b>Definition:</b> <a href="MediaException_8h_source.html#l00408">MediaException.h:408</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a872fe19f4d94ec222e0fb880dc2e7520"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a872fe19f4d94ec222e0fb880dc2e7520">zypp::media::MediaHandler::getDirectoryYast</a></div><div class="ttdeci">void getDirectoryYast(std::list< std::string > &retlist, const Pathname &dirname, bool dots=true) const</div><div class="ttdoc">Retrieve and if available scan dirname/directory.yast.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01152">MediaHandler.cc:1152</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaNotADirException_html"><div class="ttname"><a href="classzypp_1_1media_1_1MediaNotADirException.html">zypp::media::MediaNotADirException</a></div><div class="ttdef"><b>Definition:</b> <a href="MediaException_8h_source.html#l00252">MediaException.h:252</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a51d585c097644009ee064bc915f3268d"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a51d585c097644009ee064bc915f3268d">zypp::media::MediaHandler::attachPointHint</a></div><div class="ttdeci">AttachPoint attachPointHint() const</div><div class="ttdoc">Get the actual attach point hint.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00286">MediaHandler.cc:286</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1Pathname_html_a7b86043297b38b0430d6470613f51275"><div class="ttname"><a href="classzypp_1_1filesystem_1_1Pathname.html#a7b86043297b38b0430d6470613f51275">zypp::filesystem::Pathname::absolute</a></div><div class="ttdeci">bool absolute() const</div><div class="ttdoc">Test for an absolute path.</div><div class="ttdef"><b>Definition:</b> <a href="Pathname_8h_source.html#l00115">Pathname.h:115</a></div></div> <div class="ttc" id="Gettext_8h_html_ad0ac7087c1804ce80118f897d7edd897"><div class="ttname"><a href="Gettext_8h.html#ad0ac7087c1804ce80118f897d7edd897">_</a></div><div class="ttdeci">#define _(MSG)</div><div class="ttdef"><b>Definition:</b> <a href="Gettext_8h_source.html#l00037">Gettext.h:37</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a3b5926eae518c1a128031d9e67cb552b"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a3b5926eae518c1a128031d9e67cb552b">zypp::media::MediaHandler::hasMoreDevices</a></div><div class="ttdeci">virtual bool hasMoreDevices()</div><div class="ttdoc">Check if the media has one more device available for attach(true).</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01385">MediaHandler.cc:1385</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a7e2ba7d5b23f471dbf12091ca94d0429"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a7e2ba7d5b23f471dbf12091ca94d0429">zypp::media::MediaManager::getAttachedMedia</a></div><div class="ttdeci">AttachedMedia getAttachedMedia(MediaAccessId &accessId) const</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00928">MediaManager.cc:928</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_adf05f4d3dfecdfaa6b2434fb01a0dfee"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#adf05f4d3dfecdfaa6b2434fb01a0dfee">zypp::media::MediaHandler::provideFile</a></div><div class="ttdeci">void provideFile(Pathname filename, const ByteCount &expectedFileSize_r) const</div><div class="ttdoc">Use concrete handler to provide file denoted by path below 'localRoot'.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01007">MediaHandler.cc:1007</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a85f9e8bab5a1e3fcbc61e0436aa82f14"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a85f9e8bab5a1e3fcbc61e0436aa82f14">zypp::media::MediaHandler::removeAttachPoint</a></div><div class="ttdeci">void removeAttachPoint()</div><div class="ttdoc">Remove unused attach point.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00174">MediaHandler.cc:174</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a2294331e39aa918d0189750f67f1df72"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a2294331e39aa918d0189750f67f1df72">zypp::media::MediaManager::forceReleaseShared</a></div><div class="ttdeci">void forceReleaseShared(const MediaSourceRef &media)</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00961">MediaManager.cc:961</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="classzypp_1_1media_1_1MediaSource_html"><div class="ttname"><a href="classzypp_1_1media_1_1MediaSource.html">zypp::media::MediaSource</a></div><div class="ttdoc">Media source internally used by MediaManager and MediaHandler.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSource_8h_source.html#l00036">MediaSource.h:36</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a937d262b63ede449829c8d3719864edc"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a937d262b63ede449829c8d3719864edc">zypp::media::MediaHandler::localRoot</a></div><div class="ttdeci">Pathname localRoot() const</div><div class="ttdoc">Return the local directory that corresponds to medias url, no matter if media isAttached or not.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00237">MediaHandler.cc:237</a></div></div> <div class="ttc" id="namespacezypp_1_1iostr_html_a3807dcc209ee089a23589f70c7830b27"><div class="ttname"><a href="namespacezypp_1_1iostr.html#a3807dcc209ee089a23589f70c7830b27">zypp::iostr::copy</a></div><div class="ttdeci">std::ostream & copy(std::istream &from_r, std::ostream &to_r)</div><div class="ttdoc">Copy istream to ostream.</div><div class="ttdef"><b>Definition:</b> <a href="IOStream_8h_source.html#l00050">IOStream.h:50</a></div></div> <div class="ttc" id="group__ZYPP__THROW_html_ga0a6d828c3e5802c5ca1ab6f5a86e9fc1"><div class="ttname"><a href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a></div><div class="ttdeci">#define ZYPP_CAUGHT(EXCPT)</div><div class="ttdoc">Drops a logline telling the Exception was caught (in order to handle it).</div><div class="ttdef"><b>Definition:</b> <a href="Exception_8h_source.html#l00396">Exception.h:396</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_aeba9ca80ae9acf5cfedb37f4b8e90f8a"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#aeba9ca80ae9acf5cfedb37f4b8e90f8a">zypp::media::MediaHandler::forceEject</a></div><div class="ttdeci">virtual void forceEject(const std::string &device)</div><div class="ttdoc">Call concrete handler to physically eject the media (i.e.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8h_source.html#l00348">MediaHandler.h:348</a></div></div> <div class="ttc" id="namespacezypp_1_1filesystem_html_a424d384472de80e5cc48f5d5662cc859"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a424d384472de80e5cc48f5d5662cc859">zypp::filesystem::readdir</a></div><div class="ttdeci">int readdir(std::list< std::string > &retlist_r, const Pathname &path_r, bool dots_r)</div><div class="ttdoc">Return content of directory via retlist.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00589">PathInfo.cc:589</a></div></div> <div class="ttc" id="namespacezypp_1_1filesystem_html_a6c43602bcbf440748dd6b93e36e1b187"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a6c43602bcbf440748dd6b93e36e1b187">zypp::filesystem::rmdir</a></div><div class="ttdeci">int rmdir(const Pathname &path)</div><div class="ttdoc">Like 'rmdir'.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00367">PathInfo.cc:367</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html">zypp::media::MediaManager</a></div><div class="ttdoc">Manages access to the 'physical' media, e.g CDROM drives, Disk volumes, directory trees,...</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8h_source.html#l00473">MediaManager.h:473</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a7cd266c754ecb7242c0dd46673de8046"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a7cd266c754ecb7242c0dd46673de8046">zypp::media::MediaHandler::forceRelaseAllMedia</a></div><div class="ttdeci">void forceRelaseAllMedia(bool matchMountFs)</div><div class="ttdoc">Call to this function will try to release all media matching the currenlty attached media source,...</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00815">MediaHandler.cc:815</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_af506f35396d2fb2e410e0395c7c09d13"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#af506f35396d2fb2e410e0395c7c09d13">zypp::media::MediaHandler::getDirInfo</a></div><div class="ttdeci">virtual void getDirInfo(std::list< std::string > &retlist, const Pathname &dirname, bool dots=true) const =0</div><div class="ttdoc">Call concrete handler to provide a content list of directory on media via retlist.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01291">MediaHandler.cc:1291</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a15837d5e67d0cb111bc00dba99945ca8"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a15837d5e67d0cb111bc00dba99945ca8">zypp::media::MediaHandler::getDoesFileExist</a></div><div class="ttdeci">virtual bool getDoesFileExist(const Pathname &filename) const =0</div><div class="ttdoc">check if a file exists</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01376">MediaHandler.cc:1376</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_ad899dfad84e78bb80ae8e7302aae752f"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#ad899dfad84e78bb80ae8e7302aae752f">zypp::media::MediaHandler::findAttachedMedia</a></div><div class="ttdeci">AttachedMedia findAttachedMedia(const MediaSourceRef &media) const</div><div class="ttdoc">Ask the media manager if specified media source is already attached.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00300">MediaHandler.cc:300</a></div></div> <div class="ttc" id="structzypp_1_1RW__pointer_html_a8697ed1acb8ec414f76358f844b1da02"><div class="ttname"><a href="structzypp_1_1RW__pointer.html#a8697ed1acb8ec414f76358f844b1da02">zypp::RW_pointer::swap</a></div><div class="ttdeci">void swap(RW_pointer &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="PtrTypes_8h_source.html#l00315">PtrTypes.h:315</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1Pathname_html_acab2b0e517adb30e5c75ef0d53f7f2fc"><div class="ttname"><a href="classzypp_1_1filesystem_1_1Pathname.html#acab2b0e517adb30e5c75ef0d53f7f2fc">zypp::filesystem::Pathname::absolutename</a></div><div class="ttdeci">Pathname absolutename() const</div><div class="ttdoc">Return this path, adding a leading '/' if relative.</div><div class="ttdef"><b>Definition:</b> <a href="Pathname_8h_source.html#l00138">Pathname.h:138</a></div></div> <div class="ttc" id="classzypp_1_1Exception_html"><div class="ttname"><a href="classzypp_1_1Exception.html">zypp::Exception</a></div><div class="ttdoc">Base class for Exception.</div><div class="ttdef"><b>Definition:</b> <a href="Exception_8h_source.html#l00145">Exception.h:145</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a8add4c3534425ea0e8799436de34d249"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a8add4c3534425ea0e8799436de34d249">zypp::media::MediaHandler::attachPoint</a></div><div class="ttdeci">Pathname attachPoint() const</div><div class="ttdoc">Return the currently used attach point.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00216">MediaHandler.cc:216</a></div></div> <div class="ttc" id="namespacezypp_1_1filesystem_html_a29a964b2276d62ff455b096f40269896"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a29a964b2276d62ff455b096f40269896">zypp::filesystem::FileType</a></div><div class="ttdeci">FileType</div><div class="ttdoc">File type information.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00055">PathInfo.h:55</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a13c014fb5607403cdd1699b8da9af22e"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a13c014fb5607403cdd1699b8da9af22e">zypp::media::MediaHandler::url</a></div><div class="ttdeci">Url url() const</div><div class="ttdoc">Url used.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8h_source.html#l00507">MediaHandler.h:507</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a15e173e1d216b1b864de62ccfc5be634"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a15e173e1d216b1b864de62ccfc5be634">zypp::media::MediaHandler::getDetectedDevices</a></div><div class="ttdeci">virtual void getDetectedDevices(std::vector< std::string > &devices, unsigned int &index) const</div><div class="ttdoc">Fill in a vector of detected ejectable devices and the index of the currently attached device within ...</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01390">MediaHandler.cc:1390</a></div></div> <div class="ttc" id="classzypp_1_1Date_html_adc8e5ca53781c19864f6c0e6aa6c1076"><div class="ttname"><a href="classzypp_1_1Date.html#adc8e5ca53781c19864f6c0e6aa6c1076">zypp::Date::now</a></div><div class="ttdeci">static Date now()</div><div class="ttdoc">Return the current time.</div><div class="ttdef"><b>Definition:</b> <a href="Date_8h_source.html#l00078">Date.h:78</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaFileNotFoundException_html"><div class="ttname"><a href="classzypp_1_1media_1_1MediaFileNotFoundException.html">zypp::media::MediaFileNotFoundException</a></div><div class="ttdef"><b>Definition:</b> <a href="MediaException_8h_source.html#l00145">MediaException.h:145</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_afb30e86a52f0c39b1e8426c217fb4d99"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#afb30e86a52f0c39b1e8426c217fb4d99">zypp::media::MediaHandler::_parentId</a></div><div class="ttdeci">MediaAccessId _parentId</div><div class="ttdoc">Access Id of media handler we depend on.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8h_source.html#l00115">MediaHandler.h:115</a></div></div> <div class="ttc" id="structzypp_1_1RW__pointer_html_abf313e75438e491212cfc3a62bf1fafc"><div class="ttname"><a href="structzypp_1_1RW__pointer.html#abf313e75438e491212cfc3a62bf1fafc">zypp::RW_pointer::unique</a></div><div class="ttdeci">bool unique() const</div><div class="ttdef"><b>Definition:</b> <a href="PtrTypes_8h_source.html#l00343">PtrTypes.h:343</a></div></div> <div class="ttc" id="structzypp_1_1RW__pointer_html"><div class="ttname"><a href="structzypp_1_1RW__pointer.html">zypp::RW_pointer< AttachPoint ></a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a50a968ccf5562d690da8ef2014e34a9a"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a50a968ccf5562d690da8ef2014e34a9a">zypp::media::MediaHandler::_attachPoint</a></div><div class="ttdeci">AttachPointRef _attachPoint</div><div class="ttdoc">This is where the media will be actually attached ("mounted").</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8h_source.html#l00073">MediaHandler.h:73</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a2ea0f47a546d83eabcdfe2cc2290b5e5"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a2ea0f47a546d83eabcdfe2cc2290b5e5">zypp::media::MediaHandler::_attach_mtime</a></div><div class="ttdeci">time_t _attach_mtime</div><div class="ttdoc">timestamp of the the last attach verification</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8h_source.html#l00101">MediaHandler.h:101</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1PathInfo_html_a0f8f5a3c525e971c7418b6dcd59f9d87"><div class="ttname"><a href="classzypp_1_1filesystem_1_1PathInfo.html#a0f8f5a3c525e971c7418b6dcd59f9d87">zypp::filesystem::PathInfo::isBlk</a></div><div class="ttdeci">bool isBlk() const</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00293">PathInfo.h:293</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1PathInfo_html_ade23e0a8fdbcf559b85c0526bf9ed605"><div class="ttname"><a href="classzypp_1_1filesystem_1_1PathInfo.html#ade23e0a8fdbcf559b85c0526bf9ed605">zypp::filesystem::PathInfo::devMajor</a></div><div class="ttdeci">unsigned int devMajor() const</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00242">PathInfo.cc:242</a></div></div> <div class="ttc" id="MediaHandler_8h_html"><div class="ttname"><a href="MediaHandler_8h.html">MediaHandler.h</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1PathInfo_html"><div class="ttname"><a href="classzypp_1_1filesystem_1_1PathInfo.html">zypp::filesystem::PathInfo</a></div><div class="ttdoc">Wrapper class for ::stat/::lstat.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00220">PathInfo.h:220</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a57aed18b8b8737d800c2f81fb6c37045"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a57aed18b8b8737d800c2f81fb6c37045">zypp::media::MediaHandler::getFile</a></div><div class="ttdeci">virtual void getFile(const Pathname &filename, const ByteCount &expectedFileSize_r) const</div><div class="ttdoc">Call concrete handler to provide file below attach point.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l01235">MediaHandler.cc:1235</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a4cc866e446ca33510e14d2bdd309b10a"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a4cc866e446ca33510e14d2bdd309b10a">zypp::media::MediaHandler::createAttachPoint</a></div><div class="ttdeci">Pathname createAttachPoint() const</div><div class="ttdoc">Try to create a default / temporary attach point.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00343">MediaHandler.cc:343</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1Pathname_html"><div class="ttname"><a href="classzypp_1_1filesystem_1_1Pathname.html">zypp::filesystem::Pathname</a></div><div class="ttdoc">Pathname.</div><div class="ttdef"><b>Definition:</b> <a href="Pathname_8h_source.html#l00043">Pathname.h:43</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_a380a8ba3241f449352fff09cd7416acc"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a380a8ba3241f449352fff09cd7416acc">zypp::media::MediaHandler::isAttached</a></div><div class="ttdeci">virtual bool isAttached() const</div><div class="ttdoc">True if media is attached.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8h_source.html#l00524">MediaHandler.h:524</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_1media_1_1MediaHandler_html_a82cf1d0e81f43e682b61ca322d3d48db"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#a82cf1d0e81f43e682b61ca322d3d48db">zypp::media::MediaHandler::release</a></div><div class="ttdeci">void release(const std::string &ejectDev="")</div><div class="ttdoc">Use concrete handler to release the media.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00741">MediaHandler.cc:741</a></div></div> <div class="ttc" id="namespacezypp_1_1str_html_a5e64cab973a815bfc5c3811b5086a2b9"><div class="ttname"><a href="namespacezypp_1_1str.html#a5e64cab973a815bfc5c3811b5086a2b9">zypp::str::hasPrefix</a></div><div class="ttdeci">bool hasPrefix(const C_Str &str_r, const C_Str &prefix_r)</div><div class="ttdoc">Return whether str_r has prefix prefix_r.</div><div class="ttdef"><b>Definition:</b> <a href="String_8h_source.html#l01020">String.h:1020</a></div></div> <div class="ttc" id="TmpPath_8h_html"><div class="ttname"><a href="TmpPath_8h.html">TmpPath.h</a></div></div> <div class="ttc" id="namespacezypp_1_1filesystem_html_a29a964b2276d62ff455b096f40269896ab21beff377700b678cd12d2de0184fe3"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a29a964b2276d62ff455b096f40269896ab21beff377700b678cd12d2de0184fe3">zypp::filesystem::FT_NOT_AVAIL</a></div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00057">PathInfo.h:57</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_aebc52267a899f7186f5cc042e9f88f52"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#aebc52267a899f7186f5cc042e9f88f52">zypp::media::MediaHandler::_does_download</a></div><div class="ttdeci">bool _does_download</div><div class="ttdoc">True if concrete handler downloads files to the local filesystem.</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8h_source.html#l00098">MediaHandler.h:98</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a80373d64179b193e1efb732b3727ed53"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a80373d64179b193e1efb732b3727ed53">zypp::media::MediaManager::getMountTableMTime</a></div><div class="ttdeci">static time_t getMountTableMTime()</div><div class="ttdoc">Get the modification time of the /etc/mtab file.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00839">MediaManager.cc:839</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="Mount_8h_html"><div class="ttname"><a href="Mount_8h.html">Mount.h</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1PathInfo_html_a615cba7ef44ed8d6cd15872642b0a768"><div class="ttname"><a href="classzypp_1_1filesystem_1_1PathInfo.html#a615cba7ef44ed8d6cd15872642b0a768">zypp::filesystem::PathInfo::userMayRWX</a></div><div class="ttdeci">bool userMayRWX() const</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00353">PathInfo.h:353</a></div></div> <div class="ttc" id="classzypp_1_1Url_html"><div class="ttname"><a href="classzypp_1_1Url.html">zypp::Url</a></div><div class="ttdoc">Url manipulation class.</div><div class="ttdef"><b>Definition:</b> <a href="Url_8h_source.html#l00087">Url.h:87</a></div></div> <div class="ttc" id="namespacezypp_1_1filesystem_html_a29a964b2276d62ff455b096f40269896a2bdaafb83ef187d718972ece2a5f411f"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#a29a964b2276d62ff455b096f40269896a2bdaafb83ef187d718972ece2a5f411f">zypp::filesystem::FT_DIR</a></div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8h_source.html#l00060">PathInfo.h:60</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1Mount_html_a0d5c0038ad1f7b50ed5311f9a8bc44e1"><div class="ttname"><a href="classzypp_1_1media_1_1Mount.html#a0d5c0038ad1f7b50ed5311f9a8bc44e1">zypp::media::Mount::umount</a></div><div class="ttdeci">void umount(const std::string &path)</div><div class="ttdoc">umount device</div><div class="ttdef"><b>Definition:</b> <a href="Mount_8cc_source.html#l00162">Mount.cc:162</a></div></div> <div class="ttc" id="group__ZYPP__BASE__LOGGER__MACROS_html_ga49606be7356624568932ec81c0d429f4"><div class="ttname"><a href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a></div><div class="ttdeci">#define DBG</div><div class="ttdef"><b>Definition:</b> <a href="Logger_8h_source.html#l00078">Logger.h:78</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaHandler_html_ade1170a30334eed80e6d71866caae064"><div class="ttname"><a href="classzypp_1_1media_1_1MediaHandler.html#ade1170a30334eed80e6d71866caae064">zypp::media::MediaHandler::provideFileCopy</a></div><div class="ttdeci">void provideFileCopy(Pathname srcFilename, Pathname targetFilename, const ByteCount &expectedFileSize_r) const</div><div class="ttdoc">Call concrete handler to provide a copy of a file under a different place in the file system (usually...</div><div class="ttdef"><b>Definition:</b> <a href="MediaHandler_8cc_source.html#l00994">MediaHandler.cc:994</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_afed95c07e50e880379b8e2f95006d166"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#afed95c07e50e880379b8e2f95006d166">zypp::media::MediaManager::getMountEntries</a></div><div class="ttdeci">static std::vector< MountEntry > getMountEntries()</div><div class="ttdoc">Get current mount entries from /etc/mtab file.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00848">MediaManager.cc:848</a></div></div> <div class="ttc" id="Date_8h_html"><div class="ttname"><a href="Date_8h.html">Date.h</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_ab5822068f869d72bdb30f6ee5cd45b19"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#ab5822068f869d72bdb30f6ee5cd45b19">zypp::media::MediaManager::isUseableAttachPoint</a></div><div class="ttdeci">bool isUseableAttachPoint(const Pathname &path, bool mtab=true) const</div><div class="ttdoc">Check if the specified path is useable as attach point.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00857">MediaManager.cc:857</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="dir_e5855dea3351ea26b1c2dbf0da3539de.html">media</a></li><li class="navelem"><a class="el" href="MediaHandler_8cc.html">MediaHandler.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>