diff options
-rw-r--r-- | classllfio__v2__xxx_1_1symlink__handle.html | 5 | ||||
-rw-r--r-- | structllfio__v2__xxx_1_1symlink__handle_1_1buffers__type.html | 45 |
2 files changed, 43 insertions, 7 deletions
diff --git a/classllfio__v2__xxx_1_1symlink__handle.html b/classllfio__v2__xxx_1_1symlink__handle.html index dda53faf..1a36be1b 100644 --- a/classllfio__v2__xxx_1_1symlink__handle.html +++ b/classllfio__v2__xxx_1_1symlink__handle.html @@ -662,7 +662,7 @@ ino_t </td><td class="memItemRight" valign="bottom"><b>_inode</b> {0}</td>< </div><div class="memdoc"> <p>Create a symlink handle creating a randomly named symlink on a path. The symlink is opened exclusively with <code>creation::only_if_not_exist</code> so it will never collide with nor overwrite any existing symlink.</p> <dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX open() or CreateFile() can return, or failure to allocate memory. </dd></dl> -<div class="fragment"><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordflow">try</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">for</span>(;;)</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keyword">auto</span> randomname = <a class="code" href="namespacellfio__v2__xxx_1_1utils.html#a6a29cf29a4b097411f6c1e5274bfb417">utils::random_string</a>(32);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  randomname.append(<span class="stringliteral">".random"</span>);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  result<symlink_handle> ret = <a class="code" href="classllfio__v2__xxx_1_1symlink__handle.html#a004563b5be8b75d20617018178f68e33">symlink</a>(dirpath, randomname, _mode, creation::only_if_not_exist, <a class="code" href="classllfio__v2__xxx_1_1handle.html#a013936bc1254b1a47567fe29698d1b1c">flags</a>);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">if</span>(ret || (!ret && ret.error() != errc::file_exists))</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">return</span> ret;</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>  }</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keywordflow">catch</span>(...)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">return</span> error_from_exception();</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="ttc" id="classllfio__v2__xxx_1_1handle_html_a013936bc1254b1a47567fe29698d1b1c"><div class="ttname"><a href="classllfio__v2__xxx_1_1handle.html#a013936bc1254b1a47567fe29698d1b1c">llfio_v2_xxx::handle::flags</a></div><div class="ttdeci">flag flags() const noexcept</div><div class="ttdoc">The flags this handle was opened with. </div><div class="ttdef"><b>Definition:</b> handle.hpp:315</div></div> +<div class="fragment"><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">try</span></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="keywordflow">for</span>(;;)</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keyword">auto</span> randomname = <a class="code" href="namespacellfio__v2__xxx_1_1utils.html#a6a29cf29a4b097411f6c1e5274bfb417">utils::random_string</a>(32);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  randomname.append(<span class="stringliteral">".random"</span>);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  result<symlink_handle> ret = <a class="code" href="classllfio__v2__xxx_1_1symlink__handle.html#a004563b5be8b75d20617018178f68e33">symlink</a>(dirpath, randomname, _mode, creation::only_if_not_exist, <a class="code" href="classllfio__v2__xxx_1_1handle.html#a013936bc1254b1a47567fe29698d1b1c">flags</a>);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">if</span>(ret || (!ret && ret.error() != errc::file_exists))</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">return</span> ret;</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>  }</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>  <span class="keywordflow">catch</span>(...)</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keywordflow">return</span> error_from_exception();</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>  }</div><div class="ttc" id="classllfio__v2__xxx_1_1handle_html_a013936bc1254b1a47567fe29698d1b1c"><div class="ttname"><a href="classllfio__v2__xxx_1_1handle.html#a013936bc1254b1a47567fe29698d1b1c">llfio_v2_xxx::handle::flags</a></div><div class="ttdeci">flag flags() const noexcept</div><div class="ttdoc">The flags this handle was opened with. </div><div class="ttdef"><b>Definition:</b> handle.hpp:315</div></div> <div class="ttc" id="classllfio__v2__xxx_1_1symlink__handle_html_a004563b5be8b75d20617018178f68e33"><div class="ttname"><a href="classllfio__v2__xxx_1_1symlink__handle.html#a004563b5be8b75d20617018178f68e33">llfio_v2_xxx::symlink_handle::symlink</a></div><div class="ttdeci">static result< symlink_handle > symlink(const path_handle &base, path_view_type path, mode _mode=mode::read, creation _creation=creation::open_existing, flag flags=flag::none) noexcept</div></div> <div class="ttc" id="namespacellfio__v2__xxx_1_1utils_html_a6a29cf29a4b097411f6c1e5274bfb417"><div class="ttname"><a href="namespacellfio__v2__xxx_1_1utils.html#a6a29cf29a4b097411f6c1e5274bfb417">llfio_v2_xxx::utils::random_string</a></div><div class="ttdeci">std::string random_string(size_t randomlen)</div><div class="ttdoc">Returns a cryptographically random string capable of being used as a filename. Essentially random_fil...</div><div class="ttdef"><b>Definition:</b> utils.hpp:134</div></div> </div><!-- fragment --> @@ -697,12 +697,11 @@ ino_t </td><td class="memItemRight" valign="bottom"><b>_inode</b> {0}</td>< <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">req</td><td>A buffer to fill with the contents of the symbolic link. </td></tr> - <tr><td class="paramname">kernelbuffer</td><td>A buffer to use for the kernel to fill. If left defaulted, a kernel buffer is allocated internally and stored into <code>req.buffers</code> which needs to not be destructed until one is no longer using any items within (the path returned is a view onto the original kernel data). </td></tr> </table> </dd> </dl> <dl class="section user"><dt>Errors returnable</dt><dd>Any of the errors which <code>readlinkat()</code> or <code>DeviceIoControl()</code> might return, or failure to allocate memory if the user did not supply a kernel buffer to use, or the user supplied buffer was too small. </dd></dl> -<dl class="section user"><dt>Memory Allocations</dt><dd>If the <code>kernelbuffer</code> parameter is set on entry, no memory allocations. If unset, then at least one memory allocation, possibly more is performed. </dd></dl> +<dl class="section user"><dt>Memory Allocations</dt><dd>If the <code>kernelbuffer</code> parameter is set in the request, no memory allocations. If unset, at least one memory allocation, possibly more is performed. </dd></dl> </div> </div> diff --git a/structllfio__v2__xxx_1_1symlink__handle_1_1buffers__type.html b/structllfio__v2__xxx_1_1symlink__handle_1_1buffers__type.html index 4618a338..10588ec8 100644 --- a/structllfio__v2__xxx_1_1symlink__handle_1_1buffers__type.html +++ b/structllfio__v2__xxx_1_1symlink__handle_1_1buffers__type.html @@ -117,9 +117,7 @@ Public Member Functions</h2></td></tr> constexpr </td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1symlink__handle_1_1buffers__type.html#a8e897069034acea0439397ea4aeb777a">buffers_type</a> ()</td></tr> <tr class="memdesc:a8e897069034acea0439397ea4aeb777a"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <br /></td></tr> <tr class="separator:a8e897069034acea0439397ea4aeb777a"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:aa4d9b043e638ad6e1b592f2b93a5c9c2"><td class="memItemLeft" align="right" valign="top"><a id="aa4d9b043e638ad6e1b592f2b93a5c9c2"></a> -constexpr </td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1symlink__handle_1_1buffers__type.html#aa4d9b043e638ad6e1b592f2b93a5c9c2">buffers_type</a> (<a class="el" href="classllfio__v2__xxx_1_1path__view.html">path_view</a> link, <a class="el" href="classllfio__v2__xxx_1_1symlink__handle.html#a1908a242ca435cf1386fe96a86da4002">symlink_type</a> <a class="el" href="structllfio__v2__xxx_1_1symlink__handle_1_1buffers__type.html#ac44ca889e5423c1bdeb02e5bee5f645a">type</a>=<a class="el" href="classllfio__v2__xxx_1_1symlink__handle.html#a1908a242ca435cf1386fe96a86da4002a7bf46ad61adc2265f803fc3b798b3559">symlink_type::symbolic</a>)</td></tr> -<tr class="memdesc:aa4d9b043e638ad6e1b592f2b93a5c9c2"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br /></td></tr> +<tr class="memitem:aa4d9b043e638ad6e1b592f2b93a5c9c2"><td class="memItemLeft" align="right" valign="top">constexpr </td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1symlink__handle_1_1buffers__type.html#aa4d9b043e638ad6e1b592f2b93a5c9c2">buffers_type</a> (<a class="el" href="classllfio__v2__xxx_1_1path__view.html">path_view</a> link, <a class="el" href="classllfio__v2__xxx_1_1symlink__handle.html#a1908a242ca435cf1386fe96a86da4002">symlink_type</a> <a class="el" href="structllfio__v2__xxx_1_1symlink__handle_1_1buffers__type.html#ac44ca889e5423c1bdeb02e5bee5f645a">type</a>=<a class="el" href="classllfio__v2__xxx_1_1symlink__handle.html#a1908a242ca435cf1386fe96a86da4002a7bf46ad61adc2265f803fc3b798b3559">symlink_type::symbolic</a>)</td></tr> <tr class="separator:aa4d9b043e638ad6e1b592f2b93a5c9c2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3880885ec5694a6ca77b4325a0684848"><td class="memItemLeft" align="right" valign="top"><a id="a3880885ec5694a6ca77b4325a0684848"></a>  </td><td class="memItemRight" valign="bottom"><a class="el" href="structllfio__v2__xxx_1_1symlink__handle_1_1buffers__type.html#a3880885ec5694a6ca77b4325a0684848">buffers_type</a> (<a class="el" href="structllfio__v2__xxx_1_1symlink__handle_1_1buffers__type.html">buffers_type</a> &&o) noexcept</td></tr> @@ -179,7 +177,46 @@ class </td><td class="memItemRight" valign="bottom"><b>symlink_handle</b></ <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>The buffers type used by this handle for reads, which is a single item sequence of <code>path_view</code>.</p> <dl class="section warning"><dt>Warning</dt><dd>Unless you supply your own kernel buffer, you need to keep this around as long as you use the path view, as the path is a view of the original buffer filled by the kernel and the existence of this keeps that original buffer around. </dd></dl> -</div><hr/>The documentation for this struct was generated from the following file:<ul> +</div><h2 class="groupheader">Constructor & Destructor Documentation</h2> +<a id="aa4d9b043e638ad6e1b592f2b93a5c9c2"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aa4d9b043e638ad6e1b592f2b93a5c9c2">◆ </a></span>buffers_type()</h2> + +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">constexpr llfio_v2_xxx::symlink_handle::buffers_type::buffers_type </td> + <td>(</td> + <td class="paramtype"><a class="el" href="classllfio__v2__xxx_1_1path__view.html">path_view</a> </td> + <td class="paramname"><em>link</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="classllfio__v2__xxx_1_1symlink__handle.html#a1908a242ca435cf1386fe96a86da4002">symlink_type</a> </td> + <td class="paramname"><em>type</em> = <code><a class="el" href="classllfio__v2__xxx_1_1symlink__handle.html#a1908a242ca435cf1386fe96a86da4002a7bf46ad61adc2265f803fc3b798b3559">symlink_type::symbolic</a></code> </td> + </tr> + <tr> + <td></td> + <td>)</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>Constructor </p> +<div class="fragment"><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  : _link(link)</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  , _type(<a class="code" href="structllfio__v2__xxx_1_1symlink__handle_1_1buffers__type.html#ac44ca889e5423c1bdeb02e5bee5f645a">type</a>)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="ttc" id="structllfio__v2__xxx_1_1symlink__handle_1_1buffers__type_html_ac44ca889e5423c1bdeb02e5bee5f645a"><div class="ttname"><a href="structllfio__v2__xxx_1_1symlink__handle_1_1buffers__type.html#ac44ca889e5423c1bdeb02e5bee5f645a">llfio_v2_xxx::symlink_handle::buffers_type::type</a></div><div class="ttdeci">symlink_type type() const noexcept</div><div class="ttdoc">The type of the symbolic link. </div><div class="ttdef"><b>Definition:</b> symlink_handle.hpp:180</div></div> +</div><!-- fragment --> +</div> +</div> +<hr/>The documentation for this struct was generated from the following file:<ul> <li>include/llfio/v2.0/<a class="el" href="symlink__handle_8hpp.html">symlink_handle.hpp</a></li> </ul> </div><!-- contents --> |