diff options
Diffstat (limited to 'doc/html/boost/process/extend/posix_executor.html')
-rw-r--r-- | doc/html/boost/process/extend/posix_executor.html | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/doc/html/boost/process/extend/posix_executor.html b/doc/html/boost/process/extend/posix_executor.html index 9550141352..22a788f6c2 100644 --- a/doc/html/boost/process/extend/posix_executor.html +++ b/doc/html/boost/process/extend/posix_executor.html @@ -35,10 +35,10 @@ </span><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Sequence<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="posix_executor.html" title="Struct template posix_executor">posix_executor</a> <span class="special">{</span> - <span class="comment">// <a class="link" href="posix_executor.html#idp25032304-bb">public member functions</a></span> - <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span> <a class="link" href="posix_executor.html#idp25032864-bb"><span class="identifier">error</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="posix_executor.html#idp25034336-bb"><span class="identifier">set_error</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="posix_executor.html#idp25037744-bb"><span class="identifier">set_error</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="posix_executor.html#idp40057536-bb">public member functions</a></span> + <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span> <a class="link" href="posix_executor.html#idp40058096-bb"><span class="identifier">error</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="posix_executor.html#idp40059568-bb"><span class="identifier">set_error</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="posix_executor.html#idp40062976-bb"><span class="identifier">set_error</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span> <span class="comment">// public data members</span> <span class="identifier">Sequence</span> <span class="special">&</span> <span class="identifier">seq</span><span class="special">;</span> <span class="comment">// A reference to the actual initializer-sequence. </span> @@ -49,7 +49,7 @@ <span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special"><</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">atomic</span><span class="special"><</span> <span class="keyword">int</span> <span class="special">></span> <span class="special">></span> <span class="identifier">exit_status</span><span class="special">;</span> <span class="comment">// This shared-pointer holds the exit code. It's done this way, so it can be shared between an <code class="computeroutput">asio::io_service</code> and <a class="link" href="../child.html" title="Class child">child</a>. </span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="idp432609984"></a><h2>Description</h2> +<a name="idp416453056"></a><h2>Description</h2> <p>This type represents the posix executor and can be used for overloading in a custom handler. </p> <div class="note"><table border="0" summary="Note"> <tr> @@ -65,35 +65,35 @@ As information for extension development, here is the structure of the process l </p> <pre class="programlisting"> <span class="keyword">for</span> <span class="special">(</span><span class="keyword">auto</span> <span class="special">&</span> <span class="identifier">s</span> <span class="special">:</span> <span class="identifier">seq</span><span class="special">)</span> - <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp24951632-bb">on_setup</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp39976864-bb">on_setup</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">)</span><span class="special">;</span> -<span class="keyword">if</span> <span class="special">(</span><a class="link" href="posix_executor.html#idp25032864-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span> +<span class="keyword">if</span> <span class="special">(</span><a class="link" href="posix_executor.html#idp40058096-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">for</span> <span class="special">(</span><span class="keyword">auto</span> <span class="special">&</span> <span class="identifier">s</span> <span class="special">:</span> <span class="identifier">seq</span><span class="special">)</span> - <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp24955456-bb">on_error</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">,</span> <a class="link" href="posix_executor.html#idp25032864-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp39980688-bb">on_error</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">,</span> <a class="link" href="posix_executor.html#idp40058096-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> <span class="keyword">return</span> <a class="link" href="../child.html" title="Class child">child</a><span class="special">(</span><span class="special">)</span><span class="special">;</span> <span class="special">}</span> <span class="identifier">pid</span> <span class="special">=</span> <a href="http://pubs.opengroup.org/onlinepubs/009695399/functions/fork.html" target="_top"><span class="identifier">fork</span><span class="special">(</span><span class="special">)</span></a> -<a class="link" href="handler.html#idp24951632-bb">on_setup</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">)</span><span class="special">;</span> +<a class="link" href="handler.html#idp39976864-bb">on_setup</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">)</span><span class="special">;</span> <span class="keyword">if</span> <span class="special">(</span><span class="identifier">pid</span> <span class="special">==</span> <span class="special">-</span><span class="number">1</span><span class="special">)</span> <span class="comment">//fork error </span> <span class="special">{</span> - <a class="link" href="posix_executor.html#idp25034336-bb">set_error</a><span class="special">(</span><a class="link" href="../../../process/reference.html#boost.process.extend.get_last_error">get_last_error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="posix_executor.html#idp40059568-bb">set_error</a><span class="special">(</span><a class="link" href="../../../process/reference.html#boost.process.extend.get_last_error">get_last_error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> <span class="keyword">for</span> <span class="special">(</span><span class="keyword">auto</span> <span class="special">&</span> <span class="identifier">s</span> <span class="special">:</span> <span class="identifier">seq</span><span class="special">)</span> - <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp24963584-bb">on_fork_error</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">,</span> <a class="link" href="posix_executor.html#idp25032864-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp39988816-bb">on_fork_error</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">,</span> <a class="link" href="posix_executor.html#idp40058096-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> <span class="keyword">for</span> <span class="special">(</span><span class="keyword">auto</span> <span class="special">&</span> <span class="identifier">s</span> <span class="special">:</span> <span class="identifier">seq</span><span class="special">)</span> - <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp24955456-bb">on_error</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">,</span> <a class="link" href="posix_executor.html#idp25032864-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp39980688-bb">on_error</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">,</span> <a class="link" href="posix_executor.html#idp40058096-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> <span class="keyword">return</span> <a class="link" href="../child.html" title="Class child">child</a><span class="special">(</span><span class="special">)</span> <span class="special">}</span> <span class="keyword">else</span> <span class="keyword">if</span> <span class="special">(</span><span class="identifier">pid</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span> <span class="comment">//child process</span> <span class="special">{</span> <span class="keyword">for</span> <span class="special">(</span><span class="keyword">auto</span> <span class="special">&</span> <span class="identifier">s</span> <span class="special">:</span> <span class="identifier">seq</span><span class="special">)</span> - <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp24968448-bb">on_exec_setup</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp39993680-bb">on_exec_setup</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">)</span><span class="special">;</span> <a href="http://pubs.opengroup.org/onlinepubs/009695399/functions/exec.html" target="_top"><span class="identifier">execve</span></a><span class="special">(</span><span class="identifier">exe</span><span class="special">,</span> <span class="identifier">cmd_line</span><span class="special">,</span> <span class="identifier">env</span><span class="special">)</span><span class="special">;</span> <span class="keyword">auto</span> <span class="identifier">ec</span> <span class="special">=</span> <a class="link" href="../../../process/reference.html#boost.process.extend.get_last_error">get_last_error</a><span class="special">(</span><span class="special">)</span><span class="special">;</span> <span class="keyword">for</span> <span class="special">(</span><span class="keyword">auto</span> <span class="special">&</span> <span class="identifier">s</span> <span class="special">:</span> <span class="identifier">seq</span><span class="special">)</span> - <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp24973680-bb">on_exec_error</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp39998912-bb">on_exec_error</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">)</span><span class="special">;</span> <span class="emphasis"><em><span class="identifier">unspecified</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></em></span><span class="comment">//here the error is send to the father process interally</span> @@ -105,18 +105,18 @@ As information for extension development, here is the structure of the process l <span class="emphasis"><em><span class="identifier">unspecified</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></em></span><span class="comment">//here, we read the the error from the child process</span> -<span class="keyword">if</span> <span class="special">(</span><a class="link" href="posix_executor.html#idp25032864-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span> +<span class="keyword">if</span> <span class="special">(</span><a class="link" href="posix_executor.html#idp40058096-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span> <span class="keyword">for</span> <span class="special">(</span><span class="keyword">auto</span> <span class="special">&</span> <span class="identifier">s</span> <span class="special">:</span> <span class="identifier">seq</span><span class="special">)</span> - <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp24955456-bb">on_error</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">,</span> <a class="link" href="posix_executor.html#idp25032864-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp39980688-bb">on_error</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">,</span> <a class="link" href="posix_executor.html#idp40058096-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> <span class="keyword">else</span> <span class="keyword">for</span> <span class="special">(</span><span class="keyword">auto</span> <span class="special">&</span> <span class="identifier">s</span> <span class="special">:</span> <span class="identifier">seq</span><span class="special">)</span> - <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp24955456-bb">on_success</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp39980688-bb">on_success</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">)</span><span class="special">;</span> <span class="comment">//now we check again, because a on_success handler might've errored.</span> -<span class="keyword">if</span> <span class="special">(</span><a class="link" href="posix_executor.html#idp25032864-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span> +<span class="keyword">if</span> <span class="special">(</span><a class="link" href="posix_executor.html#idp40058096-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">for</span> <span class="special">(</span><span class="keyword">auto</span> <span class="special">&</span> <span class="identifier">s</span> <span class="special">:</span> <span class="identifier">seq</span><span class="special">)</span> - <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp24955456-bb">on_error</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">,</span> <a class="link" href="posix_executor.html#idp25032864-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">s</span><span class="special">.</span><a class="link" href="handler.html#idp39980688-bb">on_error</a><span class="special">(</span><span class="special">*</span><span class="keyword">this</span><span class="special">,</span> <a class="link" href="posix_executor.html#idp40058096-bb">error</a><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> <span class="keyword">return</span> <a class="link" href="../child.html" title="Class child">child</a><span class="special">(</span><span class="special">)</span><span class="special">;</span> <span class="special">}</span> <span class="keyword">else</span> @@ -153,20 +153,20 @@ As information for extension development, here is the structure of the process l <p> </p> <div class="refsect2"> -<a name="idp432796640"></a><h3>Template Parameters</h3> +<a name="idp416639712"></a><h3>Template Parameters</h3> <div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> <pre class="literallayout"><span class="keyword">typename</span> Sequence</pre> <p>The used initializer-sequence, it is fulfills the boost.fusion <a href="http://www.boost.org/doc/libs/master/libs/fusion/doc/html/fusion/sequence.html" target="_top">sequence</a> concept.</p> </li></ol></div> </div> <div class="refsect2"> -<a name="idp432800624"></a><h3> -<a name="idp25032304-bb"></a><code class="computeroutput">posix_executor</code> public member functions</h3> +<a name="idp416643696"></a><h3> +<a name="idp40057536-bb"></a><code class="computeroutput">posix_executor</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span> <a name="idp25032864-bb"></a><span class="identifier">error</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>This function returns a const reference to the error state of the executor. </li> +<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span> <a name="idp40058096-bb"></a><span class="identifier">error</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>This function returns a const reference to the error state of the executor. </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idp25034336-bb"></a><span class="identifier">set_error</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span> ec<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&</span> msg<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idp40059568-bb"></a><span class="identifier">set_error</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span> ec<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&</span> msg<span class="special">)</span><span class="special">;</span></pre> <p>This function can be used to report an error to the executor. This will be handled according to the configuration of the executor, i.e. it might throw an exception. </p> <div class="note"><table border="0" summary="Note"> <tr> @@ -179,7 +179,7 @@ As information for extension development, here is the structure of the process l </p> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="idp25037744-bb"></a><span class="identifier">set_error</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span> ec<span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> msg<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="idp40062976-bb"></a><span class="identifier">set_error</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&</span> ec<span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> msg<span class="special">)</span><span class="special">;</span></pre> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> </li> </ol></div> |