<!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::base::Fd Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="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('classzypp_1_1base_1_1Fd.html','');}); /* @license-end */ </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pri-methods">Private Member Functions</a> | <a href="#pri-attribs">Private Attributes</a> | <a href="classzypp_1_1base_1_1Fd-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">zypp::base::Fd Class Reference<div class="ingroups"><a class="el" href="group__g__RAII.html">RAII solutions</a></div></div> </div> </div><!--header--> <div class="contents"> <p>Assert <code>close</code> called on open filedescriptor. <a href="classzypp_1_1base_1_1Fd.html#details">More...</a></p> <p><code>#include <<a class="el" href="Fd_8h_source.html">Fd.h</a>></code></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:aebd8cbdcf69d355fcd705dcf94d58eeb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1base_1_1Fd.html#aebd8cbdcf69d355fcd705dcf94d58eeb">Fd</a> (const <a class="el" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> &file_r, int open_flags, mode_t mode=0)</td></tr> <tr class="memdesc:aebd8cbdcf69d355fcd705dcf94d58eeb"><td class="mdescLeft"> </td><td class="mdescRight">Ctor opens file. <a href="#aebd8cbdcf69d355fcd705dcf94d58eeb">More...</a><br /></td></tr> <tr class="separator:aebd8cbdcf69d355fcd705dcf94d58eeb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a246f057d7acc8907873f662ae5776359"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1base_1_1Fd.html#a246f057d7acc8907873f662ae5776359">Fd</a> (<a class="el" href="classzypp_1_1base_1_1Fd.html">Fd</a> &&rhs)</td></tr> <tr class="memdesc:a246f057d7acc8907873f662ae5776359"><td class="mdescLeft"> </td><td class="mdescRight">Move ctor. <a href="#a246f057d7acc8907873f662ae5776359">More...</a><br /></td></tr> <tr class="separator:a246f057d7acc8907873f662ae5776359"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa86410acd029c870c8d16b217a9be010"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzypp_1_1base_1_1Fd.html">Fd</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1base_1_1Fd.html#aa86410acd029c870c8d16b217a9be010">operator=</a> (<a class="el" href="classzypp_1_1base_1_1Fd.html">Fd</a> &&rhs)</td></tr> <tr class="memdesc:aa86410acd029c870c8d16b217a9be010"><td class="mdescLeft"> </td><td class="mdescRight">Move assign. <a href="#aa86410acd029c870c8d16b217a9be010">More...</a><br /></td></tr> <tr class="separator:aa86410acd029c870c8d16b217a9be010"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aea5c90501afc66e26681b81019354f11"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1base_1_1Fd.html#aea5c90501afc66e26681b81019354f11">~Fd</a> ()</td></tr> <tr class="memdesc:aea5c90501afc66e26681b81019354f11"><td class="mdescLeft"> </td><td class="mdescRight">Dtor closes file. <a href="#aea5c90501afc66e26681b81019354f11">More...</a><br /></td></tr> <tr class="separator:aea5c90501afc66e26681b81019354f11"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac4e1d07675ac0b0769642c825ac6a75d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1base_1_1Fd.html#ac4e1d07675ac0b0769642c825ac6a75d">close</a> ()</td></tr> <tr class="memdesc:ac4e1d07675ac0b0769642c825ac6a75d"><td class="mdescLeft"> </td><td class="mdescRight">Explicitly close the file. <a href="#ac4e1d07675ac0b0769642c825ac6a75d">More...</a><br /></td></tr> <tr class="separator:ac4e1d07675ac0b0769642c825ac6a75d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2798d21bc94727dd61550db0e8c9036d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1base_1_1Fd.html#a2798d21bc94727dd61550db0e8c9036d">isOpen</a> () const</td></tr> <tr class="memdesc:a2798d21bc94727dd61550db0e8c9036d"><td class="mdescLeft"> </td><td class="mdescRight">Test for valid filedescriptor. <a href="#a2798d21bc94727dd61550db0e8c9036d">More...</a><br /></td></tr> <tr class="separator:a2798d21bc94727dd61550db0e8c9036d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7b1acecf41ffc7e3ae28b7ba10dc4ce9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1base_1_1Fd.html#a7b1acecf41ffc7e3ae28b7ba10dc4ce9">fd</a> () const</td></tr> <tr class="memdesc:a7b1acecf41ffc7e3ae28b7ba10dc4ce9"><td class="mdescLeft"> </td><td class="mdescRight">Return the filedescriptor. <a href="#a7b1acecf41ffc7e3ae28b7ba10dc4ce9">More...</a><br /></td></tr> <tr class="separator:a7b1acecf41ffc7e3ae28b7ba10dc4ce9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7830e858d56ad0c634c88c6e65ee24cb"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1base_1_1Fd.html#a7830e858d56ad0c634c88c6e65ee24cb">operator*</a> () const</td></tr> <tr class="memdesc:a7830e858d56ad0c634c88c6e65ee24cb"><td class="mdescLeft"> </td><td class="mdescRight">Return the filedescriptor. <a href="#a7830e858d56ad0c634c88c6e65ee24cb">More...</a><br /></td></tr> <tr class="separator:a7830e858d56ad0c634c88c6e65ee24cb"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a> Private Member Functions</h2></td></tr> <tr class="memitem:a51d5d713a2e0dc07b6f00210521a51cd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1base_1_1Fd.html#a51d5d713a2e0dc07b6f00210521a51cd">NON_COPYABLE</a> (<a class="el" href="classzypp_1_1base_1_1Fd.html">Fd</a>)</td></tr> <tr class="separator:a51d5d713a2e0dc07b6f00210521a51cd"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a> Private Attributes</h2></td></tr> <tr class="memitem:adbfb8acfd25eecace3e64d97bb2198d2"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classzypp_1_1base_1_1Fd.html#adbfb8acfd25eecace3e64d97bb2198d2">m_fd</a></td></tr> <tr class="memdesc:adbfb8acfd25eecace3e64d97bb2198d2"><td class="mdescLeft"> </td><td class="mdescRight">The filedescriptor. <a href="#adbfb8acfd25eecace3e64d97bb2198d2">More...</a><br /></td></tr> <tr class="separator:adbfb8acfd25eecace3e64d97bb2198d2"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Assert <code>close</code> called on open filedescriptor. </p> <div class="fragment"><div class="line">...</div><div class="line">scoped_ptr<<a class="code" href="classzypp_1_1base_1_1Fd.html#aebd8cbdcf69d355fcd705dcf94d58eeb">Fd</a>> <a class="code" href="classzypp_1_1base_1_1Fd.html#a7b1acecf41ffc7e3ae28b7ba10dc4ce9">fd</a>; <span class="comment">// calls close when going out of scope</span></div><div class="line"><span class="keywordflow">try</span> {</div><div class="line"> <a class="code" href="classzypp_1_1base_1_1Fd.html#a7b1acecf41ffc7e3ae28b7ba10dc4ce9">fd</a>.reset( <span class="keyword">new</span> <a class="code" href="classzypp_1_1base_1_1Fd.html#aebd8cbdcf69d355fcd705dcf94d58eeb">Fd</a>( <span class="stringliteral">"/some/file"</span> ) );</div><div class="line">} <span class="keywordflow">catch</span> ( ... ) {</div><div class="line"> <span class="comment">// open failed.</span></div><div class="line">}</div><div class="line"><a class="code" href="namespacezypp_1_1base_1_1sysconfig.html#a7143baad1cef04b5fa432d20e4491d1e">read</a>( <a class="code" href="classzypp_1_1base_1_1Fd.html#a7b1acecf41ffc7e3ae28b7ba10dc4ce9">fd</a>->fd(), ... ),</div></div><!-- fragment --><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000005">Todo:</a></b></dt><dd>It's dumb. Openflags and more related functions (read/write..) could be added. </dd></dl> <p class="definition">Definition at line <a class="el" href="Fd_8h_source.html#l00044">44</a> of file <a class="el" href="Fd_8h_source.html">Fd.h</a>.</p> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a id="aebd8cbdcf69d355fcd705dcf94d58eeb"></a> <h2 class="memtitle"><span class="permalink"><a href="#aebd8cbdcf69d355fcd705dcf94d58eeb">◆ </a></span>Fd() <span class="overload">[1/2]</span></h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">zypp::base::Fd::Fd </td> <td>(</td> <td class="paramtype">const <a class="el" href="classzypp_1_1filesystem_1_1Pathname.html">Pathname</a> & </td> <td class="paramname"><em>file_r</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>open_flags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">mode_t </td> <td class="paramname"><em>mode</em> = <code>0</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Ctor opens file. </p> <dl class="exception"><dt>Exceptions</dt><dd> <table class="exception"> <tr><td class="paramname">EXCEPTION</td><td>If open fails. </td></tr> </table> </dd> </dl> <p class="definition">Definition at line <a class="el" href="Fd_8cc_source.html#l00036">36</a> of file <a class="el" href="Fd_8cc_source.html">Fd.cc</a>.</p> </div> </div> <a id="a246f057d7acc8907873f662ae5776359"></a> <h2 class="memtitle"><span class="permalink"><a href="#a246f057d7acc8907873f662ae5776359">◆ </a></span>Fd() <span class="overload">[2/2]</span></h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">zypp::base::Fd::Fd </td> <td>(</td> <td class="paramtype"><a class="el" href="classzypp_1_1base_1_1Fd.html">Fd</a> && </td> <td class="paramname"><em>rhs</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Move ctor. </p> <p class="definition">Definition at line <a class="el" href="Fd_8h_source.html#l00054">54</a> of file <a class="el" href="Fd_8h_source.html">Fd.h</a>.</p> </div> </div> <a id="aea5c90501afc66e26681b81019354f11"></a> <h2 class="memtitle"><span class="permalink"><a href="#aea5c90501afc66e26681b81019354f11">◆ </a></span>~Fd()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">zypp::base::Fd::~Fd </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Dtor closes file. </p> <p class="definition">Definition at line <a class="el" href="Fd_8h_source.html#l00063">63</a> of file <a class="el" href="Fd_8h_source.html">Fd.h</a>.</p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a id="a51d5d713a2e0dc07b6f00210521a51cd"></a> <h2 class="memtitle"><span class="permalink"><a href="#a51d5d713a2e0dc07b6f00210521a51cd">◆ </a></span>NON_COPYABLE()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">zypp::base::Fd::NON_COPYABLE </td> <td>(</td> <td class="paramtype"><a class="el" href="classzypp_1_1base_1_1Fd.html">Fd</a> </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a id="aa86410acd029c870c8d16b217a9be010"></a> <h2 class="memtitle"><span class="permalink"><a href="#aa86410acd029c870c8d16b217a9be010">◆ </a></span>operator=()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classzypp_1_1base_1_1Fd.html">Fd</a>& zypp::base::Fd::operator= </td> <td>(</td> <td class="paramtype"><a class="el" href="classzypp_1_1base_1_1Fd.html">Fd</a> && </td> <td class="paramname"><em>rhs</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Move assign. </p> <p class="definition">Definition at line <a class="el" href="Fd_8h_source.html#l00059">59</a> of file <a class="el" href="Fd_8h_source.html">Fd.h</a>.</p> </div> </div> <a id="ac4e1d07675ac0b0769642c825ac6a75d"></a> <h2 class="memtitle"><span class="permalink"><a href="#ac4e1d07675ac0b0769642c825ac6a75d">◆ </a></span>close()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void zypp::base::Fd::close </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Explicitly close the file. </p> <p class="definition">Definition at line <a class="el" href="Fd_8cc_source.html#l00049">49</a> of file <a class="el" href="Fd_8cc_source.html">Fd.cc</a>.</p> </div> </div> <a id="a2798d21bc94727dd61550db0e8c9036d"></a> <h2 class="memtitle"><span class="permalink"><a href="#a2798d21bc94727dd61550db0e8c9036d">◆ </a></span>isOpen()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classbool.html">bool</a> zypp::base::Fd::isOpen </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Test for valid filedescriptor. </p> <p class="definition">Definition at line <a class="el" href="Fd_8h_source.html#l00070">70</a> of file <a class="el" href="Fd_8h_source.html">Fd.h</a>.</p> </div> </div> <a id="a7b1acecf41ffc7e3ae28b7ba10dc4ce9"></a> <h2 class="memtitle"><span class="permalink"><a href="#a7b1acecf41ffc7e3ae28b7ba10dc4ce9">◆ </a></span>fd()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int zypp::base::Fd::fd </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Return the filedescriptor. </p> <p class="definition">Definition at line <a class="el" href="Fd_8h_source.html#l00074">74</a> of file <a class="el" href="Fd_8h_source.html">Fd.h</a>.</p> </div> </div> <a id="a7830e858d56ad0c634c88c6e65ee24cb"></a> <h2 class="memtitle"><span class="permalink"><a href="#a7830e858d56ad0c634c88c6e65ee24cb">◆ </a></span>operator*()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int zypp::base::Fd::operator* </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Return the filedescriptor. </p> <p class="definition">Definition at line <a class="el" href="Fd_8h_source.html#l00078">78</a> of file <a class="el" href="Fd_8h_source.html">Fd.h</a>.</p> </div> </div> <h2 class="groupheader">Member Data Documentation</h2> <a id="adbfb8acfd25eecace3e64d97bb2198d2"></a> <h2 class="memtitle"><span class="permalink"><a href="#adbfb8acfd25eecace3e64d97bb2198d2">◆ </a></span>m_fd</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int zypp::base::Fd::m_fd</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>The filedescriptor. </p> <p class="definition">Definition at line <a class="el" href="Fd_8h_source.html#l00083">83</a> of file <a class="el" href="Fd_8h_source.html">Fd.h</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li>zypp/base/<a class="el" href="Fd_8h_source.html">Fd.h</a></li> <li>zypp/base/<a class="el" href="Fd_8cc_source.html">Fd.cc</a></li> </ul> </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="namespacezypp.html">zypp</a></li><li class="navelem"><a class="el" href="namespacezypp_1_1base.html">base</a></li><li class="navelem"><a class="el" href="classzypp_1_1base_1_1Fd.html">Fd</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>