<!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/MediaSetAccess.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('MediaSetAccess_8cc_source.html','');}); /* @license-end */ </script> <div id="doc-content"> <div class="header"> <div class="headertitle"> <div class="title">MediaSetAccess.cc</div> </div> </div><!--header--> <div class="contents"> <a href="MediaSetAccess_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="l00009"></a><span class="lineno"> 9</span> </div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <iostream></span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <fstream></span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="LogTools_8h.html">zypp/base/LogTools.h</a>"</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="Regex_8h.html">zypp/base/Regex.h</a>"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="UserRequestException_8h.html">zypp/base/UserRequestException.h</a>"</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="ZYppCallbacks_8h.html">zypp/ZYppCallbacks.h</a>"</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="MediaSetAccess_8h.html">zypp/MediaSetAccess.h</a>"</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="PathInfo_8h.html">zypp/PathInfo.h</a>"</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="TmpPath_8h.html">zypp/TmpPath.h</a>"</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//#include "zypp/source/MediaSetAccessReportReceivers.h"</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">using namespace </span><a class="code" href="namespacestd.html">std</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="namespacezypp.html">zypp</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> { </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <a class="code" href="ReferenceCounted_8h.html#ac9f70b359e11c09eca21d9c85e5d6eea">IMPL_PTR_TYPE</a>(<a class="code" href="namespaceMediaSetAccess.html">MediaSetAccess</a>);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#adb860ff70b4599803add8e5835b158a0"> 32</a></span>  MediaSetAccess::MediaSetAccess(<span class="keyword">const</span> <a class="code" href="classzypp_1_1Url.html">Url</a> &<a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>,</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & prefered_attach_point)</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  : _url(<a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>)</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  , _prefAttachPoint(prefered_attach_point)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  {}</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#a60bb5057093b55e1578c4b28d1f6e7e5"> 38</a></span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#adb860ff70b4599803add8e5835b158a0">MediaSetAccess::MediaSetAccess</a>(<span class="keyword">const</span> std::string & label_r,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">const</span> <a class="code" href="classzypp_1_1Url.html">Url</a> &<a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & prefered_attach_point)</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  : _url(<a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>)</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  , _prefAttachPoint(prefered_attach_point)</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  , _label( label_r )</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  {}</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#a2eefbac533894260e6fddca87efd8fcd"> 46</a></span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#a2eefbac533894260e6fddca87efd8fcd">MediaSetAccess::~MediaSetAccess</a>()</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">try</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#adfbc087871209b502a4ace38d5fdf479">release</a>();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">catch</span>(...) {} <span class="comment">// don't let exception escape a dtor.</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#acbad802296317ffb01c2e07fe3b4e66a"> 56</a></span>  <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1MediaSetAccess.html#acbad802296317ffb01c2e07fe3b4e66a">MediaSetAccess::setVerifier</a>( <span class="keywordtype">unsigned</span> media_nr, <a class="code" href="structzypp_1_1RW__pointer.html">media::MediaVerifierRef</a> <a class="code" href="MediaManager_8cc.html#a367c54f9332e56210b7b49616862423f">verifier</a> )</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">if</span> (<a class="code" href="classzypp_1_1MediaSetAccess.html#a320d05e4edbde15f30bf04c0df73dd2c">_medias</a>.find(media_nr) != <a class="code" href="classzypp_1_1MediaSetAccess.html#a320d05e4edbde15f30bf04c0df73dd2c">_medias</a>.end())</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// the media already exists, set theverifier</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="namespacezypp_1_1media.html#a4ea0dee09696f60f0a852362efe41b69">media::MediaAccessId</a> <span class="keywordtype">id</span> = <a class="code" href="classzypp_1_1MediaSetAccess.html#a320d05e4edbde15f30bf04c0df73dd2c">_medias</a>[media_nr];</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classzypp_1_1media_1_1MediaManager.html">media::MediaManager</a> media_mgr;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#ad78b50580cb504bed79df7637bd570d8">addVerifier</a>( <span class="keywordtype">id</span>, <a class="code" href="MediaManager_8cc.html#a367c54f9332e56210b7b49616862423f">verifier</a> );</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// remove any saved verifier for this media</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#a21dea97a9fc9c494e616177c9b5e013c">_verifiers</a>.erase(media_nr);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// save the verifier in the map, and set it when</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">// the media number is first attached</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#a21dea97a9fc9c494e616177c9b5e013c">_verifiers</a>[media_nr] = <a class="code" href="MediaManager_8cc.html#a367c54f9332e56210b7b49616862423f">verifier</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#afeeafb5f6c0eba9f160b41bac37298da"> 75</a></span>  <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1MediaSetAccess.html#afeeafb5f6c0eba9f160b41bac37298da">MediaSetAccess::releaseFile</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1OnMediaLocation.html">OnMediaLocation</a> & on_media_file )</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#afeeafb5f6c0eba9f160b41bac37298da">releaseFile</a>( on_media_file.<a class="code" href="classzypp_1_1OnMediaLocation.html#a6056a4f294e658f4d1a38e612136c31b">filename</a>(), on_media_file.<a class="code" href="classzypp_1_1OnMediaLocation.html#a633cd31c3688d20d2aa4672f1130d81a">medianr</a>() );</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#a3ed55ef838e2acc2f18ed48ade080a70"> 80</a></span>  <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1MediaSetAccess.html#afeeafb5f6c0eba9f160b41bac37298da">MediaSetAccess::releaseFile</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & file, <span class="keywordtype">unsigned</span> media_nr)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classzypp_1_1media_1_1MediaManager.html">media::MediaManager</a> media_mgr;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="namespacezypp_1_1media.html#a4ea0dee09696f60f0a852362efe41b69">media::MediaAccessId</a> media;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  media = <a class="code" href="classzypp_1_1MediaSetAccess.html#a224f7707e0900a749c028549fedf6758">getMediaAccessId</a>( media_nr);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Going to release file "</span> << file</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  << <span class="stringliteral">" from media number "</span> << media_nr << endl;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">if</span> ( ! media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a6b1b2d7618f264833c2a6fdc41d9fc88">isAttached</a>(media) )</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">return</span>; <span class="comment">//disattached media is free</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a1e2b9900ac59c2f18fe66f1c79912f23">releaseFile</a> (media, file);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</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"><a class="line" href="classzypp_1_1MediaSetAccess.html#ad6b580db6594766f8b457d46a519fac1"> 95</a></span>  <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1MediaSetAccess.html#ad6b580db6594766f8b457d46a519fac1">MediaSetAccess::dirInfo</a>( <a class="code" href="namespacezypp_1_1filesystem.html#ade46cd05af0a1fa7e5995e321cfb586b">filesystem::DirContent</a> &retlist, <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &dirname,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordtype">bool</span> dots, <span class="keywordtype">unsigned</span> media_nr )</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="classzypp_1_1media_1_1MediaManager.html">media::MediaManager</a> media_mgr;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="namespacezypp_1_1media.html#a4ea0dee09696f60f0a852362efe41b69">media::MediaAccessId</a> media;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  media = <a class="code" href="classzypp_1_1MediaSetAccess.html#a224f7707e0900a749c028549fedf6758">getMediaAccessId</a>(media_nr);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// try to attach the media</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">if</span> ( ! media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a6b1b2d7618f264833c2a6fdc41d9fc88">isAttached</a>(media) )</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a36e0b34ad20742921bc1ad9c2a2fade8">attach</a>(media);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a4ad8d3535fa1f04920fe823e8b04849a">dirInfo</a>(media, retlist, dirname, dots);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structzypp_1_1ProvideFileOperation.html"> 109</a></span>  <span class="keyword">struct </span><a class="code" href="structzypp_1_1ProvideFileOperation.html">ProvideFileOperation</a></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  {</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="structzypp_1_1ProvideFileOperation.html#aaa0276103131ee50de7af377905e0fec"> 111</a></span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> <a class="code" href="structzypp_1_1ProvideFileOperation.html#aaa0276103131ee50de7af377905e0fec">result</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="structzypp_1_1ProvideFileOperation.html#af7f5bb75878c4af0f4035b73b8421968"> 112</a></span>  <a class="code" href="classzypp_1_1ByteCount.html">ByteCount</a> <a class="code" href="structzypp_1_1ProvideFileOperation.html#af7f5bb75878c4af0f4035b73b8421968">expectedFileSize</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="structzypp_1_1ProvideFileOperation.html#add63d0844a8ed23a46822983a09ccd42"> 113</a></span>  <span class="keywordtype">void</span> <a class="code" href="structzypp_1_1ProvideFileOperation.html#add63d0844a8ed23a46822983a09ccd42">operator()</a>( <a class="code" href="namespacezypp_1_1media.html#a4ea0dee09696f60f0a852362efe41b69">media::MediaAccessId</a> media, <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &file )</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>  <a class="code" href="classzypp_1_1media_1_1MediaManager.html">media::MediaManager</a> media_mgr;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a606b062a03aa7e621d19f03d4712c157">provideFile</a>(media, file, <a class="code" href="structzypp_1_1ProvideFileOperation.html#af7f5bb75878c4af0f4035b73b8421968">expectedFileSize</a>);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="structzypp_1_1ProvideFileOperation.html#aaa0276103131ee50de7af377905e0fec">result</a> = media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#ac44d24dc20f9b89930f065750705efe3">localPath</a>(media, file);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</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"><a class="line" href="structzypp_1_1ProvideDirTreeOperation.html"> 121</a></span>  <span class="keyword">struct </span><a class="code" href="structzypp_1_1ProvideDirTreeOperation.html">ProvideDirTreeOperation</a></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  {</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="structzypp_1_1ProvideDirTreeOperation.html#a558823ea2c739a631f88ce97b40519f9"> 123</a></span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> <a class="code" href="structzypp_1_1ProvideDirTreeOperation.html#a558823ea2c739a631f88ce97b40519f9">result</a>;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="structzypp_1_1ProvideDirTreeOperation.html#a276ce79586974faf4c8c7fd7f3735e41"> 124</a></span>  <span class="keywordtype">void</span> <a class="code" href="structzypp_1_1ProvideDirTreeOperation.html#a276ce79586974faf4c8c7fd7f3735e41">operator()</a>( <a class="code" href="namespacezypp_1_1media.html#a4ea0dee09696f60f0a852362efe41b69">media::MediaAccessId</a> media, <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &file )</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="classzypp_1_1media_1_1MediaManager.html">media::MediaManager</a> media_mgr;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#ad2668f33e094068a94746248732bfc0f">provideDirTree</a>(media, file);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="structzypp_1_1ProvideDirTreeOperation.html#a558823ea2c739a631f88ce97b40519f9">result</a> = media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#ac44d24dc20f9b89930f065750705efe3">localPath</a>(media, file);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  };</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="structzypp_1_1ProvideDirOperation.html"> 132</a></span>  <span class="keyword">struct </span><a class="code" href="structzypp_1_1ProvideDirOperation.html">ProvideDirOperation</a></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  {</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="structzypp_1_1ProvideDirOperation.html#a726d797565e5e91671d9182fdbb44463"> 134</a></span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> <a class="code" href="structzypp_1_1ProvideDirOperation.html#a726d797565e5e91671d9182fdbb44463">result</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="structzypp_1_1ProvideDirOperation.html#adeb4aca0368d3363687bd7ba1c4ca105"> 135</a></span>  <span class="keywordtype">void</span> <a class="code" href="structzypp_1_1ProvideDirOperation.html#adeb4aca0368d3363687bd7ba1c4ca105">operator()</a>( <a class="code" href="namespacezypp_1_1media.html#a4ea0dee09696f60f0a852362efe41b69">media::MediaAccessId</a> media, <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &file )</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classzypp_1_1media_1_1MediaManager.html">media::MediaManager</a> media_mgr;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a8edb17b2ab8ad2a96c1f4f55dba71e8f">provideDir</a>(media, file);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="structzypp_1_1ProvideDirOperation.html#a726d797565e5e91671d9182fdbb44463">result</a> = media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#ac44d24dc20f9b89930f065750705efe3">localPath</a>(media, file);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  };</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="structzypp_1_1ProvideFileExistenceOperation.html"> 143</a></span>  <span class="keyword">struct </span><a class="code" href="structzypp_1_1ProvideFileExistenceOperation.html">ProvideFileExistenceOperation</a></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  {</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="structzypp_1_1ProvideFileExistenceOperation.html#a8c5147296784a3cc4ef05ed5e25a4dc4"> 145</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structzypp_1_1ProvideFileExistenceOperation.html#a8c5147296784a3cc4ef05ed5e25a4dc4">result</a>;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="structzypp_1_1ProvideFileExistenceOperation.html#aadb9596086b56bb6f3153c38042a2a5f"> 146</a></span>  <a class="code" href="structzypp_1_1ProvideFileExistenceOperation.html#aadb9596086b56bb6f3153c38042a2a5f">ProvideFileExistenceOperation</a>()</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  : <a class="code" href="structzypp_1_1ProvideFileExistenceOperation.html#a8c5147296784a3cc4ef05ed5e25a4dc4">result</a>(false)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  {}</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="structzypp_1_1ProvideFileExistenceOperation.html#a9fb04cd3a14431da9b29ac0e3569dccb"> 150</a></span>  <span class="keywordtype">void</span> <a class="code" href="structzypp_1_1ProvideFileExistenceOperation.html#a9fb04cd3a14431da9b29ac0e3569dccb">operator()</a>( <a class="code" href="namespacezypp_1_1media.html#a4ea0dee09696f60f0a852362efe41b69">media::MediaAccessId</a> media, <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &file )</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classzypp_1_1media_1_1MediaManager.html">media::MediaManager</a> media_mgr;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="structzypp_1_1ProvideFileExistenceOperation.html#a8c5147296784a3cc4ef05ed5e25a4dc4">result</a> = media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a8e2ab1cc5232a6ae97175f44bf41caff">doesFileExist</a>(media, file);</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>  };</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> </div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#a07a52991c5d8cbe4b1f40b1f69d300e6"> 159</a></span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> <a class="code" href="classzypp_1_1MediaSetAccess.html#a07a52991c5d8cbe4b1f40b1f69d300e6">MediaSetAccess::provideFile</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1OnMediaLocation.html">OnMediaLocation</a> & resource, ProvideFileOptions options, <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &deltafile )</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>  <a class="code" href="structzypp_1_1ProvideFileOperation.html">ProvideFileOperation</a> op;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  op.<a class="code" href="structzypp_1_1ProvideFileOperation.html#af7f5bb75878c4af0f4035b73b8421968">expectedFileSize</a> = resource.<a class="code" href="classzypp_1_1OnMediaLocation.html#a9f2e0d3641bd09df7fa13ecdd77dad2d">downloadSize</a>();</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#ae94500c8ebca417a136bd61021bd31b3">provide</a>( boost::ref(op), resource, options, deltafile );</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">return</span> op.<a class="code" href="structzypp_1_1ProvideFileOperation.html#aaa0276103131ee50de7af377905e0fec">result</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#a070fe985c3f232301bb0ab3fc7cb1b3a"> 167</a></span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> <a class="code" href="classzypp_1_1MediaSetAccess.html#a07a52991c5d8cbe4b1f40b1f69d300e6">MediaSetAccess::provideFile</a>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & file, <span class="keywordtype">unsigned</span> media_nr, ProvideFileOptions options )</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="classzypp_1_1OnMediaLocation.html">OnMediaLocation</a> resource;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="structzypp_1_1ProvideFileOperation.html">ProvideFileOperation</a> op;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  resource.<a class="code" href="classzypp_1_1OnMediaLocation.html#a574b2939746c8c9b52df4c74c46263ff">setLocation</a>(file, media_nr);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#ae94500c8ebca417a136bd61021bd31b3">provide</a>( boost::ref(op), resource, options, <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>() );</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> op.<a class="code" href="structzypp_1_1ProvideFileOperation.html#aaa0276103131ee50de7af377905e0fec">result</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#ac1565c7156e42034182b31fa0fd6ba2b"> 176</a></span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> <a class="code" href="classzypp_1_1MediaSetAccess.html#ac1565c7156e42034182b31fa0fd6ba2b">MediaSetAccess::provideOptionalFile</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & file, <span class="keywordtype">unsigned</span> media_nr )</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">try</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>  <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1MediaSetAccess.html#ad441022bca2f7af6931562612a971ccd">doesFileExist</a>( file, media_nr ) )</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1MediaSetAccess.html#a07a52991c5d8cbe4b1f40b1f69d300e6">provideFile</a>( file, media_nr, <a class="code" href="classzypp_1_1MediaSetAccess.html#aa5776b7dced57d762cf3710fed7dc4fba4eba4a6462ff667bf396e6052d70b803">PROVIDE_NON_INTERACTIVE</a> );</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">catch</span> ( <span class="keyword">const</span> <a class="code" href="classzypp_1_1media_1_1MediaFileNotFoundException.html">media::MediaFileNotFoundException</a> & excpt_r )</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  { <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>( excpt_r ); }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">catch</span> ( <span class="keyword">const</span> <a class="code" href="classzypp_1_1media_1_1MediaNotAFileException.html">media::MediaNotAFileException</a> & excpt_r )</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  { <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>( excpt_r ); }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>();</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> </div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#aa079b8fe829aece3e1621c0f5c5071dd"> 190</a></span>  <a class="code" href="classzypp_1_1AutoDispose.html">ManagedFile</a> <a class="code" href="classzypp_1_1MediaSetAccess.html#aa079b8fe829aece3e1621c0f5c5071dd">MediaSetAccess::provideFileFromUrl</a>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1Url.html">Url</a> &file_url, ProvideFileOptions options)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="classzypp_1_1Url.html">Url</a> <a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>(file_url);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> path(<a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>.getPathName());</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>.setPathName (<span class="stringliteral">"/"</span>);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="namespaceMediaSetAccess.html">MediaSetAccess</a> access(<a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="classzypp_1_1AutoDispose.html">ManagedFile</a> tmpFile = <a class="code" href="classzypp_1_1filesystem_1_1TmpFile.html#a95105ff24917ca4c06e0dadc0417618b">filesystem::TmpFile::asManagedFile</a>();</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>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> file = access.<a class="code" href="classzypp_1_1MediaSetAccess.html#a07a52991c5d8cbe4b1f40b1f69d300e6">provideFile</a>(path, 1, options);</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="comment">//prevent the file from being deleted when MediaSetAccess gets out of scope</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">if</span> ( <a class="code" href="namespacezypp_1_1filesystem.html#ad72717c76cd22a5a42c72a9e49e05721">filesystem::hardlinkCopy</a>(file, tmpFile) != 0 )</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(<a class="code" href="classzypp_1_1Exception.html">Exception</a>(<span class="stringliteral">"Can't copy file from "</span> + file.<a class="code" href="classzypp_1_1filesystem_1_1Pathname.html#a91a822e47df9fa6f484a7b771a0b3c94">asString</a>() + <span class="stringliteral">" to "</span> + tmpFile->asString() ));</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>  <span class="keywordflow">return</span> tmpFile;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#ac19e79555ce2778ca9a4cfd64c48a72e"> 208</a></span>  <a class="code" href="classzypp_1_1AutoDispose.html">ManagedFile</a> <a class="code" href="classzypp_1_1MediaSetAccess.html#ac19e79555ce2778ca9a4cfd64c48a72e">MediaSetAccess::provideOptionalFileFromUrl</a>( <span class="keyword">const</span> <a class="code" href="classzypp_1_1Url.html">Url</a> & file_url )</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">try</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1MediaSetAccess.html#aa079b8fe829aece3e1621c0f5c5071dd">provideFileFromUrl</a>( file_url, <a class="code" href="classzypp_1_1MediaSetAccess.html#aa5776b7dced57d762cf3710fed7dc4fba4eba4a6462ff667bf396e6052d70b803">PROVIDE_NON_INTERACTIVE</a> );</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">catch</span> ( <span class="keyword">const</span> <a class="code" href="classzypp_1_1media_1_1MediaFileNotFoundException.html">media::MediaFileNotFoundException</a> & excpt_r )</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  { <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>( excpt_r ); }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">catch</span> ( <span class="keyword">const</span> <a class="code" href="classzypp_1_1media_1_1MediaNotAFileException.html">media::MediaNotAFileException</a> & excpt_r )</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  { <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>( excpt_r ); }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">return</span> <a class="code" href="namespacezypp.html#a5fcd6472a3b41932c690d08b57443a1c">ManagedFile</a>();</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"><a class="line" href="classzypp_1_1MediaSetAccess.html#ad441022bca2f7af6931562612a971ccd"> 221</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classzypp_1_1MediaSetAccess.html#ad441022bca2f7af6931562612a971ccd">MediaSetAccess::doesFileExist</a>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & file, <span class="keywordtype">unsigned</span> media_nr )</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="structzypp_1_1ProvideFileExistenceOperation.html">ProvideFileExistenceOperation</a> op;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <a class="code" href="classzypp_1_1OnMediaLocation.html">OnMediaLocation</a> resource;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  resource.<a class="code" href="classzypp_1_1OnMediaLocation.html#a574b2939746c8c9b52df4c74c46263ff">setLocation</a>(file, media_nr);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#ae94500c8ebca417a136bd61021bd31b3">provide</a>( boost::ref(op), resource, <a class="code" href="classzypp_1_1MediaSetAccess.html#aa5776b7dced57d762cf3710fed7dc4fba38866547307e1f34dfb2931236a12d97">PROVIDE_DEFAULT</a>, <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>());</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">return</span> op.<a class="code" href="structzypp_1_1ProvideFileExistenceOperation.html#a8c5147296784a3cc4ef05ed5e25a4dc4">result</a>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#ae94500c8ebca417a136bd61021bd31b3"> 230</a></span>  <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1MediaSetAccess.html#ae94500c8ebca417a136bd61021bd31b3">MediaSetAccess::provide</a>( <a class="code" href="classzypp_1_1MediaSetAccess.html#ab693f3d30f0ed9d9ad8b9c4919ad4b88">ProvideOperation</a> op,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keyword">const</span> <a class="code" href="classzypp_1_1OnMediaLocation.html">OnMediaLocation</a> &resource,</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  ProvideFileOptions options,</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &deltafile )</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>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> file(resource.<a class="code" href="classzypp_1_1OnMediaLocation.html#a6056a4f294e658f4d1a38e612136c31b">filename</a>());</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordtype">unsigned</span> media_nr(resource.<a class="code" href="classzypp_1_1OnMediaLocation.html#a633cd31c3688d20d2aa4672f1130d81a">medianr</a>());</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="structzypp_1_1callback_1_1SendReport.html">callback::SendReport<media::MediaChangeReport></a> <a class="code" href="MediaCurl_8cc.html#a4e0826ef1eedfec4b8c01665fedeb6d6">report</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="classzypp_1_1media_1_1MediaManager.html">media::MediaManager</a> media_mgr;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="namespacezypp_1_1media.html#a4ea0dee09696f60f0a852362efe41b69">media::MediaAccessId</a> media;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">do</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="comment">// get the mediaId, but don't try to attach it here</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  media = <a class="code" href="classzypp_1_1MediaSetAccess.html#a224f7707e0900a749c028549fedf6758">getMediaAccessId</a>( media_nr);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordtype">bool</span> deltafileset = <span class="keyword">false</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">try</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Going to try to provide "</span> << (resource.<a class="code" href="classzypp_1_1OnMediaLocation.html#a0dd7349bda609fb05a7466a05cf35102">optional</a>() ? <span class="stringliteral">"optional"</span> : <span class="stringliteral">""</span>) << <span class="stringliteral">" file "</span> << file</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  << <span class="stringliteral">" from media number "</span> << media_nr << endl;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="comment">// try to attach the media</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">if</span> ( ! media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a6b1b2d7618f264833c2a6fdc41d9fc88">isAttached</a>(media) )</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a36e0b34ad20742921bc1ad9c2a2fade8">attach</a>(media);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a03c2eff6de6cddce664ce1181798b008">setDeltafile</a>(media, deltafile);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  deltafileset = <span class="keyword">true</span>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  op(media, file);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a03c2eff6de6cddce664ce1181798b008">setDeltafile</a>(media, <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>());</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">catch</span> ( <a class="code" href="classzypp_1_1media_1_1MediaException.html">media::MediaException</a> & excp )</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>(excp);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">if</span> (deltafileset)</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a03c2eff6de6cddce664ce1181798b008">setDeltafile</a>(media, <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>());</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="structzypp_1_1media_1_1MediaChangeReport.html#aabd478db8908768a91f588be947df142">media::MediaChangeReport::Action</a> user = <a class="code" href="structzypp_1_1media_1_1MediaChangeReport.html#aabd478db8908768a91f588be947df142a8989442c23dd2c281cb88da8df8011c8">media::MediaChangeReport::ABORT</a>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> devindex = 0;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  vector<string> devices;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#adb565d784e28cf181914e1edb092d063">getDetectedDevices</a>(media, devices, devindex);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">do</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">if</span> (user != <a class="code" href="structzypp_1_1media_1_1MediaChangeReport.html#aabd478db8908768a91f588be947df142ab3be8c4e5469bd1957aad3f268118220">media::MediaChangeReport::EJECT</a>) <span class="comment">// no use in calling this again</span></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>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Media couldn't provide file "</span> << file << <span class="stringliteral">" , releasing."</span> << endl;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">try</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a6a2c0fede9e2cec6a52b26d615c83099">release</a>(media);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  }</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">catch</span> (<span class="keyword">const</span> <a class="code" href="classzypp_1_1Exception.html">Exception</a> & excpt_r)</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>(excpt_r);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"Failed to release media "</span> << media << endl;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  }</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="comment">// set up the reason</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <a class="code" href="structzypp_1_1media_1_1MediaChangeReport.html#a614f57cae9027f2c81c31c3ff7386e3f">media::MediaChangeReport::Error</a> reason = <a class="code" href="structzypp_1_1media_1_1MediaChangeReport.html#a614f57cae9027f2c81c31c3ff7386e3fa7a1877c672e5cb6a7cb86b8556a66c83">media::MediaChangeReport::INVALID</a>;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">if</span>( <span class="keyword">typeid</span>(excp) == <span class="keyword">typeid</span>( <a class="code" href="classzypp_1_1media_1_1MediaFileNotFoundException.html">media::MediaFileNotFoundException</a> ) ||</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keyword">typeid</span>(excp) == <span class="keyword">typeid</span>( <a class="code" href="classzypp_1_1media_1_1MediaNotAFileException.html">media::MediaNotAFileException</a> ) )</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  reason = <a class="code" href="structzypp_1_1media_1_1MediaChangeReport.html#a614f57cae9027f2c81c31c3ff7386e3fab0ec95f0ceb4c8546a7dc448cd35e990">media::MediaChangeReport::NOT_FOUND</a>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>( <span class="keyword">typeid</span>(excp) == <span class="keyword">typeid</span>( <a class="code" href="classzypp_1_1media_1_1MediaNotDesiredException.html">media::MediaNotDesiredException</a>) ||</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keyword">typeid</span>(excp) == <span class="keyword">typeid</span>( <a class="code" href="classzypp_1_1media_1_1MediaNotAttachedException.html">media::MediaNotAttachedException</a>) )</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  reason = <a class="code" href="structzypp_1_1media_1_1MediaChangeReport.html#a614f57cae9027f2c81c31c3ff7386e3fa2d952bc652c12d4088162a066c4a533c">media::MediaChangeReport::WRONG</a>;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>( <span class="keyword">typeid</span>(excp) == <span class="keyword">typeid</span>( <a class="code" href="classzypp_1_1media_1_1MediaTimeoutException.html">media::MediaTimeoutException</a>) ||</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keyword">typeid</span>(excp) == <span class="keyword">typeid</span>( <a class="code" href="classzypp_1_1media_1_1MediaTemporaryProblemException.html">media::MediaTemporaryProblemException</a>))</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>  reason = <a class="code" href="structzypp_1_1media_1_1MediaChangeReport.html#a614f57cae9027f2c81c31c3ff7386e3fa211e998761ef9bc67fe5cd8cd1b505e2">media::MediaChangeReport::IO_SOFT</a>;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="comment">// Propagate the original error if _no_ callback receiver is connected, or</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="comment">// non_interactive mode (for optional files) is used (except for wrong media).</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordflow">if</span> ( ! <a class="code" href="structzypp_1_1callback_1_1SendReport.html">callback::SendReport<media::MediaChangeReport>::connected</a>()</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  || (( options & <a class="code" href="classzypp_1_1MediaSetAccess.html#aa5776b7dced57d762cf3710fed7dc4fba4eba4a6462ff667bf396e6052d70b803">PROVIDE_NON_INTERACTIVE</a> ) && reason != <a class="code" href="structzypp_1_1media_1_1MediaChangeReport.html#a614f57cae9027f2c81c31c3ff7386e3fa2d952bc652c12d4088162a066c4a533c">media::MediaChangeReport::WRONG</a> ) )</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"Can't provide file. Non-Interactive mode."</span> << endl;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <a class="code" href="group__ZYPP__THROW.html#ga08d9b1a11fa29455c0419afa1d186887">ZYPP_RETHROW</a>(excp);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="comment">// release all media before requesting another (#336881)</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a2dd7b34d34fc374f1726611c36c3c684">releaseAll</a>();</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  user = <a class="code" href="MediaCurl_8cc.html#a4e0826ef1eedfec4b8c01665fedeb6d6">report</a>->requestMedia (</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#af34ad9ee1bdfa1bc2b3f840377361c10">_url</a>,</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  media_nr,</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#a2d0c0dc88a6b92436e84d5b8a507e3e2">_label</a>,</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  reason,</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  excp.<a class="code" href="classzypp_1_1Exception.html#a2fdd31e4e499f99cec41273742b16f73">asUserHistory</a>(),</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  devices,</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  devindex</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  );</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</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>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga552f8ec9d8e5b4efa04839a129104818">MIL</a> << <span class="stringliteral">"ProvideFile exception caught, callback answer: "</span> << user << endl;</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>  <span class="keywordflow">if</span>( user == <a class="code" href="structzypp_1_1media_1_1MediaChangeReport.html#aabd478db8908768a91f588be947df142a8989442c23dd2c281cb88da8df8011c8">media::MediaChangeReport::ABORT</a> )</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Aborting"</span> << endl;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  AbortRequestException aexcp(<span class="stringliteral">"Aborting requested by user"</span>);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  aexcp.remember(excp);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(aexcp);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( user == <a class="code" href="structzypp_1_1media_1_1MediaChangeReport.html#aabd478db8908768a91f588be947df142a6f798e8db43931f7c0ded501d57a2381">media::MediaChangeReport::IGNORE</a> )</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Skipping"</span> << endl;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  SkipRequestException nexcp(<span class="stringliteral">"User-requested skipping of a file"</span>);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  nexcp.remember(excp);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <a class="code" href="group__ZYPP__THROW.html#gaf8c3a87d63dd4f26f059eddd62c22864">ZYPP_THROW</a>(nexcp);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( user == <a class="code" href="structzypp_1_1media_1_1MediaChangeReport.html#aabd478db8908768a91f588be947df142ab3be8c4e5469bd1957aad3f268118220">media::MediaChangeReport::EJECT</a> )</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Eject: try to release"</span> << endl;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">try</span></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>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a2dd7b34d34fc374f1726611c36c3c684">releaseAll</a>();</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a6a2c0fede9e2cec6a52b26d615c83099">release</a> (media, devindex < devices.size() ? devices[devindex] : <span class="stringliteral">""</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>  <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="l00356"></a><span class="lineno"> 356</span>  {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>(e);</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">else</span> <span class="keywordflow">if</span> ( user == <a class="code" href="structzypp_1_1media_1_1MediaChangeReport.html#aabd478db8908768a91f588be947df142abbf3dfa83d6c8e1c1550a2b457ee39ee">media::MediaChangeReport::RETRY</a> ||</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  user == <a class="code" href="structzypp_1_1media_1_1MediaChangeReport.html#aabd478db8908768a91f588be947df142a5b58ae5a6c0c4a5117847a492de90ac2">media::MediaChangeReport::CHANGE_URL</a> )</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="comment">// retry</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Going to try again"</span> << endl;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="comment">// invalidate current media access id</span></div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a569396e2c9b71a9ee850ccd4e435890d">close</a>(media);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#a320d05e4edbde15f30bf04c0df73dd2c">_medias</a>.erase(media_nr);</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="comment">// not attaching, media set will do that for us</span></div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="comment">// this could generate uncaught exception (#158620)</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordflow">break</span>;</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>  <span class="keywordflow">else</span></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Don't know, let's ABORT"</span> << endl;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="group__ZYPP__THROW.html#ga08d9b1a11fa29455c0419afa1d186887">ZYPP_RETHROW</a> ( excp );</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>  } <span class="keywordflow">while</span>( user == <a class="code" href="structzypp_1_1media_1_1MediaChangeReport.html#aabd478db8908768a91f588be947df142ab3be8c4e5469bd1957aad3f268118220">media::MediaChangeReport::EJECT</a> );</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="comment">// retry or change URL</span></div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  } <span class="keywordflow">while</span>( <span class="keyword">true</span> );</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#a291139f8560849eaaef923ad957c8f2e"> 385</a></span>  <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> <a class="code" href="classzypp_1_1MediaSetAccess.html#a291139f8560849eaaef923ad957c8f2e">MediaSetAccess::provideDir</a>(<span class="keyword">const</span> <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & dir,</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordtype">bool</span> recursive,</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordtype">unsigned</span> media_nr,</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  ProvideFileOptions options )</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <a class="code" href="classzypp_1_1OnMediaLocation.html">OnMediaLocation</a> resource;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  resource.<a class="code" href="classzypp_1_1OnMediaLocation.html#a574b2939746c8c9b52df4c74c46263ff">setLocation</a>(dir, media_nr);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">if</span> ( recursive )</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="structzypp_1_1ProvideDirTreeOperation.html">ProvideDirTreeOperation</a> op;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#ae94500c8ebca417a136bd61021bd31b3">provide</a>( boost::ref(op), resource, options, <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>());</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">return</span> op.<a class="code" href="structzypp_1_1ProvideDirTreeOperation.html#a558823ea2c739a631f88ce97b40519f9">result</a>;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  }</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <a class="code" href="structzypp_1_1ProvideDirOperation.html">ProvideDirOperation</a> op;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#ae94500c8ebca417a136bd61021bd31b3">provide</a>( boost::ref(op), resource, options, <a class="code" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a>());</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">return</span> op.<a class="code" href="structzypp_1_1ProvideDirOperation.html#a726d797565e5e91671d9182fdbb44463">result</a>;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#a224f7707e0900a749c028549fedf6758"> 403</a></span>  <a class="code" href="namespacezypp_1_1media.html#a4ea0dee09696f60f0a852362efe41b69">media::MediaAccessId</a> <a class="code" href="classzypp_1_1MediaSetAccess.html#a224f7707e0900a749c028549fedf6758">MediaSetAccess::getMediaAccessId</a> (<a class="code" href="namespacezypp_1_1media.html#a0402e694745753add7ac77f1d4f1a36d">media::MediaNr</a> medianr)</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="classzypp_1_1MediaSetAccess.html#a320d05e4edbde15f30bf04c0df73dd2c">_medias</a>.find( medianr ) != <a class="code" href="classzypp_1_1MediaSetAccess.html#a320d05e4edbde15f30bf04c0df73dd2c">_medias</a>.end() )</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordflow">return</span> <a class="code" href="classzypp_1_1MediaSetAccess.html#a320d05e4edbde15f30bf04c0df73dd2c">_medias</a>[medianr];</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  }</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <a class="code" href="classzypp_1_1Url.html">Url</a> <a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>( medianr > 1 ? <a class="code" href="classzypp_1_1MediaSetAccess.html#ae97743a16fc30052b2137668c2aeaf15">rewriteUrl</a>( <a class="code" href="classzypp_1_1MediaSetAccess.html#af34ad9ee1bdfa1bc2b3f840377361c10">_url</a>, medianr ) : <a class="code" href="classzypp_1_1MediaSetAccess.html#af34ad9ee1bdfa1bc2b3f840377361c10">_url</a> );</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <a class="code" href="classzypp_1_1media_1_1MediaManager.html">media::MediaManager</a> media_mgr;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="namespacezypp_1_1media.html#a4ea0dee09696f60f0a852362efe41b69">media::MediaAccessId</a> <span class="keywordtype">id</span> = media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a060e17aa114b31357743da2f3a2e302f">open</a>( <a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>, <a class="code" href="classzypp_1_1MediaSetAccess.html#ae0e6d4e4ab523bb5f9fbd2b1cfcb7cf2">_prefAttachPoint</a> );</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#a320d05e4edbde15f30bf04c0df73dd2c">_medias</a>[medianr] = id;</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>  <span class="keywordflow">try</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>  <span class="keywordflow">if</span> ( <a class="code" href="classzypp_1_1MediaSetAccess.html#a21dea97a9fc9c494e616177c9b5e013c">_verifiers</a>.find(medianr) != <a class="code" href="classzypp_1_1MediaSetAccess.html#a21dea97a9fc9c494e616177c9b5e013c">_verifiers</a>.end() )</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="comment">// a verifier is set for this media</span></div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="comment">// FIXME check the case where the verifier exists</span></div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="comment">// but we have no access id for the media</span></div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a07d8af592d33d07fd73c569a901afcaf">delVerifier</a>( <span class="keywordtype">id</span> );</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  media_mgr.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#ad78b50580cb504bed79df7637bd570d8">addVerifier</a>( <span class="keywordtype">id</span>, <a class="code" href="classzypp_1_1MediaSetAccess.html#a21dea97a9fc9c494e616177c9b5e013c">_verifiers</a>[medianr] );</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="comment">// remove any saved verifier for this media</span></div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <a class="code" href="classzypp_1_1MediaSetAccess.html#a21dea97a9fc9c494e616177c9b5e013c">_verifiers</a>.erase( medianr );</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</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>  <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="l00429"></a><span class="lineno"> 429</span>  {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <a class="code" href="group__ZYPP__THROW.html#ga0a6d828c3e5802c5ca1ab6f5a86e9fc1">ZYPP_CAUGHT</a>(e);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga9423380a92639b296ea0a984ea7e1c6b">WAR</a> << <span class="stringliteral">"Verifier not found"</span> << endl;</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> </div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordflow">return</span> id;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</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="l00438"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#ae97743a16fc30052b2137668c2aeaf15"> 438</a></span>  <a class="code" href="classzypp_1_1Url.html">Url</a> <a class="code" href="classzypp_1_1MediaSetAccess.html#ae97743a16fc30052b2137668c2aeaf15">MediaSetAccess::rewriteUrl</a> (<span class="keyword">const</span> <a class="code" href="classzypp_1_1Url.html">Url</a> & url_r, <span class="keyword">const</span> <a class="code" href="namespacezypp_1_1media.html#a0402e694745753add7ac77f1d4f1a36d">media::MediaNr</a> medianr)</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  std::string scheme = url_r.<a class="code" href="classzypp_1_1Url.html#a095ef9bbb54284f4399b5f84659a5341">getScheme</a>();</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">if</span> (scheme == <span class="stringliteral">"cd"</span> || scheme == <span class="stringliteral">"dvd"</span>)</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">return</span> url_r;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Rewriting url "</span> << url_r << endl;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span> </div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordflow">if</span>( scheme == <span class="stringliteral">"iso"</span>)</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="comment">// TODO the iso parameter will not be required in the future, this</span></div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="comment">// code has to be adapted together with the MediaISO change.</span></div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="comment">// maybe some MediaISOURL interface should be used.</span></div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  std::string isofile = url_r.<a class="code" href="classzypp_1_1Url.html#a4b2a104d35d9f7fd4e12117f0d7da2db">getQueryParam</a>(<span class="stringliteral">"iso"</span>);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <a class="code" href="classzypp_1_1str_1_1regex.html">str::regex</a> e(<span class="stringliteral">"^(.*)(cd|dvd|media)[0-9]+\\.iso$"</span>, <a class="code" href="classzypp_1_1str_1_1regex.html#a54f5b3dc2ef0bb7ac0dbbcc24351002ba919218aec6dfc3c39045a03bc409bf95">str::regex::icase</a>);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <a class="code" href="classzypp_1_1str_1_1smatch.html">str::smatch</a> what;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keywordflow">if</span>(<a class="code" href="namespacezypp_1_1str.html#a9144ba9f2723cdd7a421c7d177f69d32">str::regex_match</a>(isofile, what, e))</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  {</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <a class="code" href="classzypp_1_1Url.html">Url</a> <a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>( url_r);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  isofile = what[1] + what[2] + <a class="code" href="namespacezypp_1_1str.html#a295adb2a601af4b6fe994e8aec3518a3">str::numstring</a>(medianr) + <span class="stringliteral">".iso"</span>;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>.setQueryParam(<span class="stringliteral">"iso"</span>, isofile);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Url rewrite result: "</span> << <a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a> << endl;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keywordflow">return</span> <a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  }</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  std::string pathname = url_r.<a class="code" href="classzypp_1_1Url.html#a441f130bca3c47b4be6c00433627832c">getPathName</a>();</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <a class="code" href="classzypp_1_1str_1_1regex.html">str::regex</a> e(<span class="stringliteral">"^(.*)(cd|dvd|media)[0-9]+(/)?$"</span>, <a class="code" href="classzypp_1_1str_1_1regex.html#a54f5b3dc2ef0bb7ac0dbbcc24351002ba919218aec6dfc3c39045a03bc409bf95">str::regex::icase</a>);</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <a class="code" href="classzypp_1_1str_1_1smatch.html">str::smatch</a> what;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordflow">if</span>(<a class="code" href="namespacezypp_1_1str.html#a9144ba9f2723cdd7a421c7d177f69d32">str::regex_match</a>(pathname, what, e))</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <a class="code" href="classzypp_1_1Url.html">Url</a> <a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>( url_r);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  pathname = what[1] + what[2] + <a class="code" href="namespacezypp_1_1str.html#a295adb2a601af4b6fe994e8aec3518a3">str::numstring</a>(medianr) + what[3];</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>.setPathName(pathname);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Url rewrite result: "</span> << <a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a> << endl;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordflow">return</span> <a class="code" href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a>;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  }</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  }</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordflow">return</span> url_r;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  }</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> </div><div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#adfbc087871209b502a4ace38d5fdf479"> 481</a></span>  <span class="keywordtype">void</span> <a class="code" href="classzypp_1_1MediaSetAccess.html#adfbc087871209b502a4ace38d5fdf479">MediaSetAccess::release</a>()</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="group__ZYPP__BASE__LOGGER__MACROS.html#ga49606be7356624568932ec81c0d429f4">DBG</a> << <span class="stringliteral">"Releasing all media IDs held by this MediaSetAccess"</span> << endl;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <a class="code" href="classzypp_1_1media_1_1MediaManager.html">media::MediaManager</a> manager;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keywordflow">for</span> (MediaMap::const_iterator m = <a class="code" href="classzypp_1_1MediaSetAccess.html#a320d05e4edbde15f30bf04c0df73dd2c">_medias</a>.begin(); m != <a class="code" href="classzypp_1_1MediaSetAccess.html#a320d05e4edbde15f30bf04c0df73dd2c">_medias</a>.end(); ++m)</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  manager.<a class="code" href="classzypp_1_1media_1_1MediaManager.html#a6a2c0fede9e2cec6a52b26d615c83099">release</a>(m->second, <span class="stringliteral">""</span>);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  }</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div><div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="classzypp_1_1MediaSetAccess.html#a3a30516b6703a3a442475509022dd548"> 489</a></span>  std::ostream & <a class="code" href="classzypp_1_1MediaSetAccess.html#a3a30516b6703a3a442475509022dd548">MediaSetAccess::dumpOn</a>( std::ostream & <a class="code" href="namespacestr.html">str</a> )<span class="keyword"> const</span></div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <a class="code" href="namespacestr.html">str</a> << <span class="stringliteral">"MediaSetAccess (URL='"</span> << <a class="code" href="classzypp_1_1MediaSetAccess.html#af34ad9ee1bdfa1bc2b3f840377361c10">_url</a> << <span class="stringliteral">"', attach_point_hint='"</span> << <a class="code" href="classzypp_1_1MediaSetAccess.html#ae0e6d4e4ab523bb5f9fbd2b1cfcb7cf2">_prefAttachPoint</a> << <span class="stringliteral">"')"</span>;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordflow">return</span> <a class="code" href="namespacestr.html">str</a>;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  }</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span> } <span class="comment">// namespace zypp</span></div><div class="ttc" id="classzypp_1_1MediaSetAccess_html_ac19e79555ce2778ca9a4cfd64c48a72e"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#ac19e79555ce2778ca9a4cfd64c48a72e">zypp::MediaSetAccess::provideOptionalFileFromUrl</a></div><div class="ttdeci">static ManagedFile provideOptionalFileFromUrl(const Url &file_url)</div><div class="ttdoc">Provides an optional file from url.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00208">MediaSetAccess.cc:208</a></div></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_1MediaNotDesiredException_html"><div class="ttname"><a href="classzypp_1_1media_1_1MediaNotDesiredException.html">zypp::media::MediaNotDesiredException</a></div><div class="ttdef"><b>Definition:</b> <a href="MediaException_8h_source.html#l00377">MediaException.h:377</a></div></div> <div class="ttc" id="structzypp_1_1callback_1_1SendReport_html"><div class="ttname"><a href="structzypp_1_1callback_1_1SendReport.html">zypp::callback::SendReport</a></div><div class="ttdef"><b>Definition:</b> <a href="Callback_8h_source.html#l00236">Callback.h:236</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="structzypp_1_1media_1_1MediaChangeReport_html_aabd478db8908768a91f588be947df142a6f798e8db43931f7c0ded501d57a2381"><div class="ttname"><a href="structzypp_1_1media_1_1MediaChangeReport.html#aabd478db8908768a91f588be947df142a6f798e8db43931f7c0ded501d57a2381">zypp::media::MediaChangeReport::IGNORE</a></div><div class="ttdef"><b>Definition:</b> <a href="ZYppCallbacks_8h_source.html#l00301">ZYppCallbacks.h:301</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaTimeoutException_html"><div class="ttname"><a href="classzypp_1_1media_1_1MediaTimeoutException.html">zypp::media::MediaTimeoutException</a></div><div class="ttdef"><b>Definition:</b> <a href="MediaException_8h_source.html#l00476">MediaException.h:476</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_ae94500c8ebca417a136bd61021bd31b3"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#ae94500c8ebca417a136bd61021bd31b3">zypp::MediaSetAccess::provide</a></div><div class="ttdeci">void provide(ProvideOperation op, const OnMediaLocation &resource, ProvideFileOptions options, const Pathname &deltafile)</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00230">MediaSetAccess.cc:230</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_ad2668f33e094068a94746248732bfc0f"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#ad2668f33e094068a94746248732bfc0f">zypp::media::MediaManager::provideDirTree</a></div><div class="ttdeci">void provideDirTree(MediaAccessId accessId, const Pathname &dirname) const</div><div class="ttdoc">FIXME: see MediaAccess class.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00723">MediaManager.cc:723</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a03c2eff6de6cddce664ce1181798b008"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a03c2eff6de6cddce664ce1181798b008">zypp::media::MediaManager::setDeltafile</a></div><div class="ttdeci">void setDeltafile(MediaAccessId accessId, const Pathname &filename) const</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00695">MediaManager.cc:695</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_1OnMediaLocation_html"><div class="ttname"><a href="classzypp_1_1OnMediaLocation.html">zypp::OnMediaLocation</a></div><div class="ttdoc">Describes a path on a certain media amongs as the information required to download it,...</div><div class="ttdef"><b>Definition:</b> <a href="OnMediaLocation_8h_source.html#l00039">OnMediaLocation.h:39</a></div></div> <div class="ttc" id="classzypp_1_1str_1_1regex_html"><div class="ttname"><a href="classzypp_1_1str_1_1regex.html">zypp::str::regex</a></div><div class="ttdoc">Regular expression.</div><div class="ttdef"><b>Definition:</b> <a href="Regex_8h_source.html#l00086">Regex.h:86</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_aa079b8fe829aece3e1621c0f5c5071dd"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#aa079b8fe829aece3e1621c0f5c5071dd">zypp::MediaSetAccess::provideFileFromUrl</a></div><div class="ttdeci">static ManagedFile provideFileFromUrl(const Url &file_url, ProvideFileOptions options=PROVIDE_DEFAULT)</div><div class="ttdoc">Provides file from url.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00190">MediaSetAccess.cc:190</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a8e2ab1cc5232a6ae97175f44bf41caff"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a8e2ab1cc5232a6ae97175f44bf41caff">zypp::media::MediaManager::doesFileExist</a></div><div class="ttdeci">bool doesFileExist(MediaAccessId accessId, const Pathname &filename) const</div><div class="ttdoc">FIXME: see MediaAccess class.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00814">MediaManager.cc:814</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_a320d05e4edbde15f30bf04c0df73dd2c"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#a320d05e4edbde15f30bf04c0df73dd2c">zypp::MediaSetAccess::_medias</a></div><div class="ttdeci">MediaMap _medias</div><div class="ttdoc">Mapping between media number and Media Access ID.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8h_source.html#l00367">MediaSetAccess.h:367</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_af34ad9ee1bdfa1bc2b3f840377361c10"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#af34ad9ee1bdfa1bc2b3f840377361c10">zypp::MediaSetAccess::_url</a></div><div class="ttdeci">Url _url</div><div class="ttdoc">Media or media set URL.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8h_source.html#l00351">MediaSetAccess.h:351</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_ac1565c7156e42034182b31fa0fd6ba2b"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#ac1565c7156e42034182b31fa0fd6ba2b">zypp::MediaSetAccess::provideOptionalFile</a></div><div class="ttdeci">Pathname provideOptionalFile(const Pathname &file, unsigned media_nr=1)</div><div class="ttdoc">Provides an optional file from media media_nr.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00176">MediaSetAccess.cc:176</a></div></div> <div class="ttc" id="structzypp_1_1media_1_1MediaChangeReport_html_aabd478db8908768a91f588be947df142a5b58ae5a6c0c4a5117847a492de90ac2"><div class="ttname"><a href="structzypp_1_1media_1_1MediaChangeReport.html#aabd478db8908768a91f588be947df142a5b58ae5a6c0c4a5117847a492de90ac2">zypp::media::MediaChangeReport::CHANGE_URL</a></div><div class="ttdef"><b>Definition:</b> <a href="ZYppCallbacks_8h_source.html#l00303">ZYppCallbacks.h:303</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="structzypp_1_1ProvideDirOperation_html_a726d797565e5e91671d9182fdbb44463"><div class="ttname"><a href="structzypp_1_1ProvideDirOperation.html#a726d797565e5e91671d9182fdbb44463">zypp::ProvideDirOperation::result</a></div><div class="ttdeci">Pathname result</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00134">MediaSetAccess.cc:134</a></div></div> <div class="ttc" id="structzypp_1_1ProvideFileOperation_html"><div class="ttname"><a href="structzypp_1_1ProvideFileOperation.html">zypp::ProvideFileOperation</a></div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00109">MediaSetAccess.cc:109</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_a291139f8560849eaaef923ad957c8f2e"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#a291139f8560849eaaef923ad957c8f2e">zypp::MediaSetAccess::provideDir</a></div><div class="ttdeci">Pathname provideDir(const Pathname &dir, bool recursive, unsigned media_nr=1, ProvideFileOptions options=PROVIDE_DEFAULT)</div><div class="ttdoc">Provides direcotry dir from media number media_nr.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00385">MediaSetAccess.cc:385</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a4ad8d3535fa1f04920fe823e8b04849a"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a4ad8d3535fa1f04920fe823e8b04849a">zypp::media::MediaManager::dirInfo</a></div><div class="ttdeci">void dirInfo(MediaAccessId accessId, std::list< std::string > &retlist, const Pathname &dirname, bool dots=true) const</div><div class="ttdoc">FIXME: see MediaAccess class.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00780">MediaManager.cc:780</a></div></div> <div class="ttc" id="structzypp_1_1media_1_1MediaChangeReport_html_a614f57cae9027f2c81c31c3ff7386e3fab0ec95f0ceb4c8546a7dc448cd35e990"><div class="ttname"><a href="structzypp_1_1media_1_1MediaChangeReport.html#a614f57cae9027f2c81c31c3ff7386e3fab0ec95f0ceb4c8546a7dc448cd35e990">zypp::media::MediaChangeReport::NOT_FOUND</a></div><div class="ttdef"><b>Definition:</b> <a href="ZYppCallbacks_8h_source.html#l00309">ZYppCallbacks.h:309</a></div></div> <div class="ttc" id="classzypp_1_1OnMediaLocation_html_a9f2e0d3641bd09df7fa13ecdd77dad2d"><div class="ttname"><a href="classzypp_1_1OnMediaLocation.html#a9f2e0d3641bd09df7fa13ecdd77dad2d">zypp::OnMediaLocation::downloadSize</a></div><div class="ttdeci">const ByteCount & downloadSize() const</div><div class="ttdoc">The size of the resource on the server.</div><div class="ttdef"><b>Definition:</b> <a href="OnMediaLocation_8h_source.html#l00079">OnMediaLocation.h:79</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_a3a30516b6703a3a442475509022dd548"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#a3a30516b6703a3a442475509022dd548">zypp::MediaSetAccess::dumpOn</a></div><div class="ttdeci">virtual std::ostream & dumpOn(std::ostream &str) const</div><div class="ttdoc">Overload to realize std::ostream & operator<<.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00489">MediaSetAccess.cc:489</a></div></div> <div class="ttc" id="structzypp_1_1media_1_1MediaChangeReport_html_a614f57cae9027f2c81c31c3ff7386e3fa211e998761ef9bc67fe5cd8cd1b505e2"><div class="ttname"><a href="structzypp_1_1media_1_1MediaChangeReport.html#a614f57cae9027f2c81c31c3ff7386e3fa211e998761ef9bc67fe5cd8cd1b505e2">zypp::media::MediaChangeReport::IO_SOFT</a></div><div class="ttdoc">IO error which can happen on worse connection like timeout exceed.</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCallbacks_8h_source.html#l00313">ZYppCallbacks.h:313</a></div></div> <div class="ttc" id="structzypp_1_1media_1_1MediaChangeReport_html_aabd478db8908768a91f588be947df142ab3be8c4e5469bd1957aad3f268118220"><div class="ttname"><a href="structzypp_1_1media_1_1MediaChangeReport.html#aabd478db8908768a91f588be947df142ab3be8c4e5469bd1957aad3f268118220">zypp::media::MediaChangeReport::EJECT</a></div><div class="ttdef"><b>Definition:</b> <a href="ZYppCallbacks_8h_source.html#l00304">ZYppCallbacks.h:304</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="classzypp_1_1MediaSetAccess_html_a2eefbac533894260e6fddca87efd8fcd"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#a2eefbac533894260e6fddca87efd8fcd">zypp::MediaSetAccess::~MediaSetAccess</a></div><div class="ttdeci">~MediaSetAccess()</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00046">MediaSetAccess.cc:46</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_ad441022bca2f7af6931562612a971ccd"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#ad441022bca2f7af6931562612a971ccd">zypp::MediaSetAccess::doesFileExist</a></div><div class="ttdeci">bool doesFileExist(const Pathname &file, unsigned media_nr=1)</div><div class="ttdoc">Checks if a file exists on the specified media, with user callbacks.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00221">MediaSetAccess.cc:221</a></div></div> <div class="ttc" id="structzypp_1_1media_1_1MediaChangeReport_html_aabd478db8908768a91f588be947df142abbf3dfa83d6c8e1c1550a2b457ee39ee"><div class="ttname"><a href="structzypp_1_1media_1_1MediaChangeReport.html#aabd478db8908768a91f588be947df142abbf3dfa83d6c8e1c1550a2b457ee39ee">zypp::media::MediaChangeReport::RETRY</a></div><div class="ttdef"><b>Definition:</b> <a href="ZYppCallbacks_8h_source.html#l00300">ZYppCallbacks.h:300</a></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="namespacezypp_html_a5fcd6472a3b41932c690d08b57443a1c"><div class="ttname"><a href="namespacezypp.html#a5fcd6472a3b41932c690d08b57443a1c">zypp::ManagedFile</a></div><div class="ttdeci">AutoDispose< const Pathname > ManagedFile</div><div class="ttdoc">A Pathname plus associated cleanup code to be executed when path is no longer needed.</div><div class="ttdef"><b>Definition:</b> <a href="ManagedFile_8h_source.html#l00027">ManagedFile.h:27</a></div></div> <div class="ttc" id="MediaCurl_8cc_html_a80c807b920948127b73f36d4d8d89037"><div class="ttname"><a href="MediaCurl_8cc.html#a80c807b920948127b73f36d4d8d89037">url</a></div><div class="ttdeci">Url url</div><div class="ttdef"><b>Definition:</b> <a href="MediaCurl_8cc_source.html#l00199">MediaCurl.cc:199</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_ae0e6d4e4ab523bb5f9fbd2b1cfcb7cf2"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#ae0e6d4e4ab523bb5f9fbd2b1cfcb7cf2">zypp::MediaSetAccess::_prefAttachPoint</a></div><div class="ttdeci">Pathname _prefAttachPoint</div><div class="ttdoc">Prefered mount point.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8h_source.html#l00359">MediaSetAccess.h:359</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_adfbc087871209b502a4ace38d5fdf479"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#adfbc087871209b502a4ace38d5fdf479">zypp::MediaSetAccess::release</a></div><div class="ttdeci">void release()</div><div class="ttdoc">Release all attached media of this set.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00481">MediaSetAccess.cc:481</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_ae97743a16fc30052b2137668c2aeaf15"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#ae97743a16fc30052b2137668c2aeaf15">zypp::MediaSetAccess::rewriteUrl</a></div><div class="ttdeci">static Url rewriteUrl(const Url &url_r, const media::MediaNr medianr)</div><div class="ttdoc">Replaces media number in specified url with given medianr.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00438">MediaSetAccess.cc:438</a></div></div> <div class="ttc" id="structzypp_1_1ProvideFileExistenceOperation_html_aadb9596086b56bb6f3153c38042a2a5f"><div class="ttname"><a href="structzypp_1_1ProvideFileExistenceOperation.html#aadb9596086b56bb6f3153c38042a2a5f">zypp::ProvideFileExistenceOperation::ProvideFileExistenceOperation</a></div><div class="ttdeci">ProvideFileExistenceOperation()</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00146">MediaSetAccess.cc:146</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a606b062a03aa7e621d19f03d4712c157"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a606b062a03aa7e621d19f03d4712c157">zypp::media::MediaManager::provideFile</a></div><div class="ttdeci">void provideFile(MediaAccessId accessId, const Pathname &filename, const ByteCount &expectedFileSize) const</div><div class="ttdoc">Provide provide file denoted by relative path below of the 'attach point' of the specified media and ...</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00672">MediaManager.cc:672</a></div></div> <div class="ttc" id="classzypp_1_1OnMediaLocation_html_a0dd7349bda609fb05a7466a05cf35102"><div class="ttname"><a href="classzypp_1_1OnMediaLocation.html#a0dd7349bda609fb05a7466a05cf35102">zypp::OnMediaLocation::optional</a></div><div class="ttdeci">const bool optional() const</div><div class="ttdoc">whether this is an optional resource.</div><div class="ttdef"><b>Definition:</b> <a href="OnMediaLocation_8h_source.html#l00100">OnMediaLocation.h:100</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="structzypp_1_1ProvideFileExistenceOperation_html_a9fb04cd3a14431da9b29ac0e3569dccb"><div class="ttname"><a href="structzypp_1_1ProvideFileExistenceOperation.html#a9fb04cd3a14431da9b29ac0e3569dccb">zypp::ProvideFileExistenceOperation::operator()</a></div><div class="ttdeci">void operator()(media::MediaAccessId media, const Pathname &file)</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00150">MediaSetAccess.cc:150</a></div></div> <div class="ttc" id="structzypp_1_1media_1_1MediaChangeReport_html_aabd478db8908768a91f588be947df142"><div class="ttname"><a href="structzypp_1_1media_1_1MediaChangeReport.html#aabd478db8908768a91f588be947df142">zypp::media::MediaChangeReport::Action</a></div><div class="ttdeci">Action</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCallbacks_8h_source.html#l00298">ZYppCallbacks.h:298</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_ac44d24dc20f9b89930f065750705efe3"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#ac44d24dc20f9b89930f065750705efe3">zypp::media::MediaManager::localPath</a></div><div class="ttdeci">Pathname localPath(MediaAccessId accessId, const Pathname &pathname) const</div><div class="ttdoc">Shortcut for 'localRoot() + pathname', but returns an empty pathname if media is not attached.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00659">MediaManager.cc:659</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_afeeafb5f6c0eba9f160b41bac37298da"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#afeeafb5f6c0eba9f160b41bac37298da">zypp::MediaSetAccess::releaseFile</a></div><div class="ttdeci">void releaseFile(const OnMediaLocation &resource)</div><div class="ttdoc">Release file from media.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00075">MediaSetAccess.cc:75</a></div></div> <div class="ttc" id="classzypp_1_1OnMediaLocation_html_a633cd31c3688d20d2aa4672f1130d81a"><div class="ttname"><a href="classzypp_1_1OnMediaLocation.html#a633cd31c3688d20d2aa4672f1130d81a">zypp::OnMediaLocation::medianr</a></div><div class="ttdeci">unsigned medianr() const</div><div class="ttdoc">media number where the resource is located.</div><div class="ttdef"><b>Definition:</b> <a href="OnMediaLocation_8h_source.html#l00064">OnMediaLocation.h:64</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a6a2c0fede9e2cec6a52b26d615c83099"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a6a2c0fede9e2cec6a52b26d615c83099">zypp::media::MediaManager::release</a></div><div class="ttdeci">void release(MediaAccessId accessId, const std::string &ejectDev="")</div><div class="ttdoc">Release the attached media and optionally eject.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00466">MediaManager.cc:466</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="structzypp_1_1ProvideFileExistenceOperation_html_a8c5147296784a3cc4ef05ed5e25a4dc4"><div class="ttname"><a href="structzypp_1_1ProvideFileExistenceOperation.html#a8c5147296784a3cc4ef05ed5e25a4dc4">zypp::ProvideFileExistenceOperation::result</a></div><div class="ttdeci">bool result</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00145">MediaSetAccess.cc:145</a></div></div> <div class="ttc" id="classzypp_1_1str_1_1regex_html_a54f5b3dc2ef0bb7ac0dbbcc24351002ba919218aec6dfc3c39045a03bc409bf95"><div class="ttname"><a href="classzypp_1_1str_1_1regex.html#a54f5b3dc2ef0bb7ac0dbbcc24351002ba919218aec6dfc3c39045a03bc409bf95">zypp::str::regex::icase</a></div><div class="ttdoc">Do not differentiate case.</div><div class="ttdef"><b>Definition:</b> <a href="Regex_8h_source.html#l00091">Regex.h:91</a></div></div> <div class="ttc" id="classzypp_1_1Url_html_a4b2a104d35d9f7fd4e12117f0d7da2db"><div class="ttname"><a href="classzypp_1_1Url.html#a4b2a104d35d9f7fd4e12117f0d7da2db">zypp::Url::getQueryParam</a></div><div class="ttdeci">std::string getQueryParam(const std::string &param, EEncoding eflag=zypp::url::E_DECODED) const</div><div class="ttdoc">Return the value for the specified query parameter.</div><div class="ttdef"><b>Definition:</b> <a href="Url_8cc_source.html#l00654">Url.cc:654</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="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="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_1MediaSetAccess_html_ad6b580db6594766f8b457d46a519fac1"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#ad6b580db6594766f8b457d46a519fac1">zypp::MediaSetAccess::dirInfo</a></div><div class="ttdeci">void dirInfo(filesystem::DirContent &retlist, const Pathname &dirname, bool dots=true, unsigned media_nr=1)</div><div class="ttdoc">Fills retlist with directory information.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00095">MediaSetAccess.cc:95</a></div></div> <div class="ttc" id="classzypp_1_1Exception_html_a2fdd31e4e499f99cec41273742b16f73"><div class="ttname"><a href="classzypp_1_1Exception.html#a2fdd31e4e499f99cec41273742b16f73">zypp::Exception::asUserHistory</a></div><div class="ttdeci">std::string asUserHistory() const</div><div class="ttdoc">A single (multiline) string composed of asUserString and historyAsString.</div><div class="ttdef"><b>Definition:</b> <a href="Exception_8cc_source.html#l00091">Exception.cc:91</a></div></div> <div class="ttc" id="structzypp_1_1media_1_1MediaChangeReport_html_a614f57cae9027f2c81c31c3ff7386e3fa2d952bc652c12d4088162a066c4a533c"><div class="ttname"><a href="structzypp_1_1media_1_1MediaChangeReport.html#a614f57cae9027f2c81c31c3ff7386e3fa2d952bc652c12d4088162a066c4a533c">zypp::media::MediaChangeReport::WRONG</a></div><div class="ttdef"><b>Definition:</b> <a href="ZYppCallbacks_8h_source.html#l00312">ZYppCallbacks.h:312</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="structzypp_1_1ProvideDirTreeOperation_html_a558823ea2c739a631f88ce97b40519f9"><div class="ttname"><a href="structzypp_1_1ProvideDirTreeOperation.html#a558823ea2c739a631f88ce97b40519f9">zypp::ProvideDirTreeOperation::result</a></div><div class="ttdeci">Pathname result</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00123">MediaSetAccess.cc:123</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="Regex_8h_html"><div class="ttname"><a href="Regex_8h.html">Regex.h</a></div></div> <div class="ttc" id="namespacezypp_1_1filesystem_html_ad72717c76cd22a5a42c72a9e49e05721"><div class="ttname"><a href="namespacezypp_1_1filesystem.html#ad72717c76cd22a5a42c72a9e49e05721">zypp::filesystem::hardlinkCopy</a></div><div class="ttdeci">int hardlinkCopy(const Pathname &oldpath, const Pathname &newpath)</div><div class="ttdoc">Create newpath as hardlink or copy of oldpath.</div><div class="ttdef"><b>Definition:</b> <a href="PathInfo_8cc_source.html#l00836">PathInfo.cc:836</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_ad78b50580cb504bed79df7637bd570d8"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#ad78b50580cb504bed79df7637bd570d8">zypp::media::MediaManager::addVerifier</a></div><div class="ttdeci">void addVerifier(MediaAccessId accessId, const MediaVerifierRef &verifier)</div><div class="ttdoc">Add verifier implementation for the specified media id.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00353">MediaManager.cc:353</a></div></div> <div class="ttc" id="structzypp_1_1ProvideDirTreeOperation_html_a276ce79586974faf4c8c7fd7f3735e41"><div class="ttname"><a href="structzypp_1_1ProvideDirTreeOperation.html#a276ce79586974faf4c8c7fd7f3735e41">zypp::ProvideDirTreeOperation::operator()</a></div><div class="ttdeci">void operator()(media::MediaAccessId media, const Pathname &file)</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00124">MediaSetAccess.cc:124</a></div></div> <div class="ttc" id="namespacezypp_1_1str_html_a295adb2a601af4b6fe994e8aec3518a3"><div class="ttname"><a href="namespacezypp_1_1str.html#a295adb2a601af4b6fe994e8aec3518a3">zypp::str::numstring</a></div><div class="ttdeci">std::string numstring(char n, int w=0)</div><div class="ttdef"><b>Definition:</b> <a href="String_8h_source.html#l00288">String.h:288</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a8edb17b2ab8ad2a96c1f4f55dba71e8f"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a8edb17b2ab8ad2a96c1f4f55dba71e8f">zypp::media::MediaManager::provideDir</a></div><div class="ttdeci">void provideDir(MediaAccessId accessId, const Pathname &dirname) const</div><div class="ttdoc">FIXME: see MediaAccess class.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00709">MediaManager.cc:709</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a36e0b34ad20742921bc1ad9c2a2fade8"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a36e0b34ad20742921bc1ad9c2a2fade8">zypp::media::MediaManager::attach</a></div><div class="ttdeci">void attach(MediaAccessId accessId)</div><div class="ttdoc">Attach the media using the concrete handler (checks all devices).</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00396">MediaManager.cc:396</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_1MediaSetAccess_html_ab693f3d30f0ed9d9ad8b9c4919ad4b88"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#ab693f3d30f0ed9d9ad8b9c4919ad4b88">zypp::MediaSetAccess::ProvideOperation</a></div><div class="ttdeci">function< void(media::MediaAccessId, const Pathname &)> ProvideOperation</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8h_source.html#l00342">MediaSetAccess.h:342</a></div></div> <div class="ttc" id="structzypp_1_1ProvideFileOperation_html_af7f5bb75878c4af0f4035b73b8421968"><div class="ttname"><a href="structzypp_1_1ProvideFileOperation.html#af7f5bb75878c4af0f4035b73b8421968">zypp::ProvideFileOperation::expectedFileSize</a></div><div class="ttdeci">ByteCount expectedFileSize</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00112">MediaSetAccess.cc:112</a></div></div> <div class="ttc" id="UserRequestException_8h_html"><div class="ttname"><a href="UserRequestException_8h.html">UserRequestException.h</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_1OnMediaLocation_html_a6056a4f294e658f4d1a38e612136c31b"><div class="ttname"><a href="classzypp_1_1OnMediaLocation.html#a6056a4f294e658f4d1a38e612136c31b">zypp::OnMediaLocation::filename</a></div><div class="ttdeci">const Pathname & filename() const</div><div class="ttdoc">The path to the resource relatve to the url and path.</div><div class="ttdef"><b>Definition:</b> <a href="OnMediaLocation_8h_source.html#l00070">OnMediaLocation.h:70</a></div></div> <div class="ttc" id="PathInfo_8h_html"><div class="ttname"><a href="PathInfo_8h.html">PathInfo.h</a></div></div> <div class="ttc" id="namespaceMediaSetAccess_html"><div class="ttname"><a href="namespaceMediaSetAccess.html">MediaSetAccess</a></div></div> <div class="ttc" id="classzypp_1_1str_1_1smatch_html"><div class="ttname"><a href="classzypp_1_1str_1_1smatch.html">zypp::str::smatch</a></div><div class="ttdoc">Regular expression match result.</div><div class="ttdef"><b>Definition:</b> <a href="Regex_8h_source.html#l00145">Regex.h:145</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_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="structzypp_1_1media_1_1MediaChangeReport_html_aabd478db8908768a91f588be947df142a8989442c23dd2c281cb88da8df8011c8"><div class="ttname"><a href="structzypp_1_1media_1_1MediaChangeReport.html#aabd478db8908768a91f588be947df142a8989442c23dd2c281cb88da8df8011c8">zypp::media::MediaChangeReport::ABORT</a></div><div class="ttdef"><b>Definition:</b> <a href="ZYppCallbacks_8h_source.html#l00299">ZYppCallbacks.h:299</a></div></div> <div class="ttc" id="structzypp_1_1ProvideDirOperation_html_adeb4aca0368d3363687bd7ba1c4ca105"><div class="ttname"><a href="structzypp_1_1ProvideDirOperation.html#adeb4aca0368d3363687bd7ba1c4ca105">zypp::ProvideDirOperation::operator()</a></div><div class="ttdeci">void operator()(media::MediaAccessId media, const Pathname &file)</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00135">MediaSetAccess.cc:135</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_acbad802296317ffb01c2e07fe3b4e66a"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#acbad802296317ffb01c2e07fe3b4e66a">zypp::MediaSetAccess::setVerifier</a></div><div class="ttdeci">void setVerifier(unsigned media_nr, media::MediaVerifierRef verifier)</div><div class="ttdoc">Sets a MediaVerifier verifier for given media number.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00056">MediaSetAccess.cc:56</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="MediaCurl_8cc_html_a4e0826ef1eedfec4b8c01665fedeb6d6"><div class="ttname"><a href="MediaCurl_8cc.html#a4e0826ef1eedfec4b8c01665fedeb6d6">report</a></div><div class="ttdeci">callback::SendReport< DownloadProgressReport > * report</div><div class="ttdef"><b>Definition:</b> <a href="MediaCurl_8cc_source.html#l00203">MediaCurl.cc:203</a></div></div> <div class="ttc" id="classzypp_1_1Url_html_a441f130bca3c47b4be6c00433627832c"><div class="ttname"><a href="classzypp_1_1Url.html#a441f130bca3c47b4be6c00433627832c">zypp::Url::getPathName</a></div><div class="ttdeci">std::string getPathName(EEncoding eflag=zypp::url::E_DECODED) const</div><div class="ttdoc">Returns the path name from the URL.</div><div class="ttdef"><b>Definition:</b> <a href="Url_8cc_source.html#l00598">Url.cc:598</a></div></div> <div class="ttc" id="MediaManager_8cc_html_a367c54f9332e56210b7b49616862423f"><div class="ttname"><a href="MediaManager_8cc.html#a367c54f9332e56210b7b49616862423f">verifier</a></div><div class="ttdeci">MediaVerifierRef verifier</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00107">MediaManager.cc:107</a></div></div> <div class="ttc" id="MediaSetAccess_8h_html"><div class="ttname"><a href="MediaSetAccess_8h.html">MediaSetAccess.h</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</a></div><div class="ttdoc">Wrapper for const correct access via Smart pointer types.</div><div class="ttdef"><b>Definition:</b> <a href="PtrTypes_8h_source.html#l00285">PtrTypes.h:285</a></div></div> <div class="ttc" id="structzypp_1_1ProvideDirTreeOperation_html"><div class="ttname"><a href="structzypp_1_1ProvideDirTreeOperation.html">zypp::ProvideDirTreeOperation</a></div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00121">MediaSetAccess.cc:121</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_a224f7707e0900a749c028549fedf6758"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#a224f7707e0900a749c028549fedf6758">zypp::MediaSetAccess::getMediaAccessId</a></div><div class="ttdeci">media::MediaAccessId getMediaAccessId(media::MediaNr medianr)</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00403">MediaSetAccess.cc:403</a></div></div> <div class="ttc" id="classzypp_1_1AutoDispose_html"><div class="ttname"><a href="classzypp_1_1AutoDispose.html">zypp::AutoDispose</a></div><div class="ttdoc">Reference counted access to a Tp object calling a custom Dispose function when the last AutoDispose h...</div><div class="ttdef"><b>Definition:</b> <a href="AutoDispose_8h_source.html#l00092">AutoDispose.h:92</a></div></div> <div class="ttc" id="structzypp_1_1ProvideFileOperation_html_aaa0276103131ee50de7af377905e0fec"><div class="ttname"><a href="structzypp_1_1ProvideFileOperation.html#aaa0276103131ee50de7af377905e0fec">zypp::ProvideFileOperation::result</a></div><div class="ttdeci">Pathname result</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00111">MediaSetAccess.cc:111</a></div></div> <div class="ttc" id="namespacezypp_1_1str_html_a9144ba9f2723cdd7a421c7d177f69d32"><div class="ttname"><a href="namespacezypp_1_1str.html#a9144ba9f2723cdd7a421c7d177f69d32">zypp::str::regex_match</a></div><div class="ttdeci">bool regex_match(const std::string &s, smatch &matches, const regex &regex)</div><div class="ttdoc">\relates regex \ingroup ZYPP_STR_REGEX \relates regex \ingroup ZYPP_STR_REGEX</div><div class="ttdef"><b>Definition:</b> <a href="Regex_8h_source.html#l00070">Regex.h:70</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaTemporaryProblemException_html"><div class="ttname"><a href="classzypp_1_1media_1_1MediaTemporaryProblemException.html">zypp::media::MediaTemporaryProblemException</a></div><div class="ttdoc">For HTTP 503 and similar.</div><div class="ttdef"><b>Definition:</b> <a href="MediaException_8h_source.html#l00508">MediaException.h:508</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_aa5776b7dced57d762cf3710fed7dc4fba4eba4a6462ff667bf396e6052d70b803"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#aa5776b7dced57d762cf3710fed7dc4fba4eba4a6462ff667bf396e6052d70b803">zypp::MediaSetAccess::PROVIDE_NON_INTERACTIVE</a></div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8h_source.html#l00120">MediaSetAccess.h:120</a></div></div> <div class="ttc" id="ZYppCallbacks_8h_html"><div class="ttname"><a href="ZYppCallbacks_8h.html">ZYppCallbacks.h</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a6b1b2d7618f264833c2a6fdc41d9fc88"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a6b1b2d7618f264833c2a6fdc41d9fc88">zypp::media::MediaManager::isAttached</a></div><div class="ttdeci">bool isAttached(MediaAccessId accessId) const</div><div class="ttdoc">Check if media is attached or not.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00558">MediaManager.cc:558</a></div></div> <div class="ttc" id="structzypp_1_1ProvideFileOperation_html_add63d0844a8ed23a46822983a09ccd42"><div class="ttname"><a href="structzypp_1_1ProvideFileOperation.html#add63d0844a8ed23a46822983a09ccd42">zypp::ProvideFileOperation::operator()</a></div><div class="ttdeci">void operator()(media::MediaAccessId media, const Pathname &file)</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00113">MediaSetAccess.cc:113</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a2dd7b34d34fc374f1726611c36c3c684"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a2dd7b34d34fc374f1726611c36c3c684">zypp::media::MediaManager::releaseAll</a></div><div class="ttdeci">void releaseAll()</div><div class="ttdoc">Release all attached media.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00510">MediaManager.cc:510</a></div></div> <div class="ttc" id="structzypp_1_1ProvideDirOperation_html"><div class="ttname"><a href="structzypp_1_1ProvideDirOperation.html">zypp::ProvideDirOperation</a></div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00132">MediaSetAccess.cc:132</a></div></div> <div class="ttc" id="structzypp_1_1ProvideFileExistenceOperation_html"><div class="ttname"><a href="structzypp_1_1ProvideFileExistenceOperation.html">zypp::ProvideFileExistenceOperation</a></div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00143">MediaSetAccess.cc:143</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_adb565d784e28cf181914e1edb092d063"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#adb565d784e28cf181914e1edb092d063">zypp::media::MediaManager::getDetectedDevices</a></div><div class="ttdeci">void getDetectedDevices(MediaAccessId accessId, 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="MediaManager_8cc_source.html#l00827">MediaManager.cc:827</a></div></div> <div class="ttc" id="structzypp_1_1media_1_1MediaChangeReport_html_a614f57cae9027f2c81c31c3ff7386e3f"><div class="ttname"><a href="structzypp_1_1media_1_1MediaChangeReport.html#a614f57cae9027f2c81c31c3ff7386e3f">zypp::media::MediaChangeReport::Error</a></div><div class="ttdeci">Error</div><div class="ttdef"><b>Definition:</b> <a href="ZYppCallbacks_8h_source.html#l00307">ZYppCallbacks.h:307</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="structzypp_1_1media_1_1MediaChangeReport_html_a614f57cae9027f2c81c31c3ff7386e3fa7a1877c672e5cb6a7cb86b8556a66c83"><div class="ttname"><a href="structzypp_1_1media_1_1MediaChangeReport.html#a614f57cae9027f2c81c31c3ff7386e3fa7a1877c672e5cb6a7cb86b8556a66c83">zypp::media::MediaChangeReport::INVALID</a></div><div class="ttdef"><b>Definition:</b> <a href="ZYppCallbacks_8h_source.html#l00311">ZYppCallbacks.h:311</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_1MediaSetAccess_html_a07a52991c5d8cbe4b1f40b1f69d300e6"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#a07a52991c5d8cbe4b1f40b1f69d300e6">zypp::MediaSetAccess::provideFile</a></div><div class="ttdeci">Pathname provideFile(const OnMediaLocation &resource, ProvideFileOptions options=PROVIDE_DEFAULT, const Pathname &deltafile=Pathname())</div><div class="ttdoc">Provides a file from a media location.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00159">MediaSetAccess.cc:159</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_adb860ff70b4599803add8e5835b158a0"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#adb860ff70b4599803add8e5835b158a0">zypp::MediaSetAccess::MediaSetAccess</a></div><div class="ttdeci">MediaSetAccess(const Url &url, const Pathname &prefered_attach_point="")</div><div class="ttdoc">Creates a callback enabled media access for specified url.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8cc_source.html#l00032">MediaSetAccess.cc:32</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a060e17aa114b31357743da2f3a2e302f"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a060e17aa114b31357743da2f3a2e302f">zypp::media::MediaManager::open</a></div><div class="ttdeci">MediaAccessId open(const Url &url, const Pathname &preferred_attach_point="")</div><div class="ttdoc">Opens the media access for specified with the url.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00251">MediaManager.cc:251</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="classzypp_1_1MediaSetAccess_html_a21dea97a9fc9c494e616177c9b5e013c"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#a21dea97a9fc9c494e616177c9b5e013c">zypp::MediaSetAccess::_verifiers</a></div><div class="ttdeci">VerifierMap _verifiers</div><div class="ttdoc">Mapping between media number and corespondent verifier.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8h_source.html#l00369">MediaSetAccess.h:369</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="classzypp_1_1media_1_1MediaManager_html_a07d8af592d33d07fd73c569a901afcaf"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a07d8af592d33d07fd73c569a901afcaf">zypp::media::MediaManager::delVerifier</a></div><div class="ttdeci">void delVerifier(MediaAccessId accessId)</div><div class="ttdoc">Remove verifier for specified media id.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00372">MediaManager.cc:372</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a1e2b9900ac59c2f18fe66f1c79912f23"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a1e2b9900ac59c2f18fe66f1c79912f23">zypp::media::MediaManager::releaseFile</a></div><div class="ttdeci">void releaseFile(MediaAccessId accessId, const Pathname &filename) const</div><div class="ttdoc">FIXME: see MediaAccess class.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00737">MediaManager.cc:737</a></div></div> <div class="ttc" id="classzypp_1_1OnMediaLocation_html_a574b2939746c8c9b52df4c74c46263ff"><div class="ttname"><a href="classzypp_1_1OnMediaLocation.html#a574b2939746c8c9b52df4c74c46263ff">zypp::OnMediaLocation::setLocation</a></div><div class="ttdeci">OnMediaLocation & setLocation(const Pathname &val_r, unsigned mediaNumber_r=1)</div><div class="ttdoc">Set filename and media number (defaults to 1).</div><div class="ttdef"><b>Definition:</b> <a href="OnMediaLocation_8h_source.html#l00108">OnMediaLocation.h:108</a></div></div> <div class="ttc" id="ReferenceCounted_8h_html_ac9f70b359e11c09eca21d9c85e5d6eea"><div class="ttname"><a href="ReferenceCounted_8h.html#ac9f70b359e11c09eca21d9c85e5d6eea">IMPL_PTR_TYPE</a></div><div class="ttdeci">#define IMPL_PTR_TYPE(NAME)</div><div class="ttdef"><b>Definition:</b> <a href="ReferenceCounted_8h_source.html#l00136">ReferenceCounted.h:136</a></div></div> <div class="ttc" id="namespacezypp_1_1media_html_a0402e694745753add7ac77f1d4f1a36d"><div class="ttname"><a href="namespacezypp_1_1media.html#a0402e694745753add7ac77f1d4f1a36d">zypp::media::MediaNr</a></div><div class="ttdeci">unsigned int MediaNr</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8h_source.html#l00040">MediaManager.h:40</a></div></div> <div class="ttc" id="classzypp_1_1media_1_1MediaManager_html_a569396e2c9b71a9ee850ccd4e435890d"><div class="ttname"><a href="classzypp_1_1media_1_1MediaManager.html#a569396e2c9b71a9ee850ccd4e435890d">zypp::media::MediaManager::close</a></div><div class="ttdeci">void close(MediaAccessId accessId)</div><div class="ttdoc">Close the media access with specified id.</div><div class="ttdef"><b>Definition:</b> <a href="MediaManager_8cc_source.html#l00273">MediaManager.cc:273</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_1MediaSetAccess_html_a2d0c0dc88a6b92436e84d5b8a507e3e2"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#a2d0c0dc88a6b92436e84d5b8a507e3e2">zypp::MediaSetAccess::_label</a></div><div class="ttdeci">std::string _label</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8h_source.html#l00361">MediaSetAccess.h:361</a></div></div> <div class="ttc" id="classzypp_1_1filesystem_1_1TmpFile_html_a95105ff24917ca4c06e0dadc0417618b"><div class="ttname"><a href="classzypp_1_1filesystem_1_1TmpFile.html#a95105ff24917ca4c06e0dadc0417618b">zypp::filesystem::TmpFile::asManagedFile</a></div><div class="ttdeci">static ManagedFile asManagedFile()</div><div class="ttdoc">Create a temporary file and convert it to a automatically cleaned up ManagedFile.</div><div class="ttdef"><b>Definition:</b> <a href="TmpPath_8cc_source.html#l00230">TmpPath.cc:230</a></div></div> <div class="ttc" id="classzypp_1_1MediaSetAccess_html_aa5776b7dced57d762cf3710fed7dc4fba38866547307e1f34dfb2931236a12d97"><div class="ttname"><a href="classzypp_1_1MediaSetAccess.html#aa5776b7dced57d762cf3710fed7dc4fba38866547307e1f34dfb2931236a12d97">zypp::MediaSetAccess::PROVIDE_DEFAULT</a></div><div class="ttdoc">The user is not asked anything, and the error exception is just propagated.</div><div class="ttdef"><b>Definition:</b> <a href="MediaSetAccess_8h_source.html#l00119">MediaSetAccess.h:119</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="MediaSetAccess_8cc.html">MediaSetAccess.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>