http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp.html
----------------------------------------------------------------------
diff --git 
a/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp.html 
b/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp.html
index 94534cc..00d2ae3 100644
--- a/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp.html
+++ b/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp.html
@@ -57,7 +57,7 @@
 <div class="contents">
 <div class="textblock"><code>#include &lt;string&gt;</code><br />
 <code>#include &lt;<a class="el" 
href="3rdparty_2libprocess_2include_2process_2shared_8hpp_source.html">process/shared.hpp</a>&gt;</code><br
 />
-<code>#include &lt;<a class="el" 
href="subprocess_8hpp_source.html">process/subprocess.hpp</a>&gt;</code><br />
+<code>#include &lt;<a class="el" 
href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>&gt;</code><br
 />
 <code>#include &lt;<a class="el" 
href="option_8hpp_source.html">stout/option.hpp</a>&gt;</code><br />
 <code>#include &lt;mesos/slave/containerizer.pb.h&gt;</code><br />
 </div>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp_source.html
----------------------------------------------------------------------
diff --git 
a/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp_source.html 
b/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp_source.html
index f34ca21..afecabe 100644
--- 
a/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp_source.html
+++ 
b/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp_source.html
@@ -52,10 +52,10 @@
 <div class="title">containerizer.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="include_2mesos_2slave_2containerizer_8hpp.html">Go to the 
documentation of this file.</a><div class="fragment"><div class="line"><a 
name="l00001"></a><span class="lineno">    1</span>&#160;<span 
class="comment">// Licensed to the Apache Software Foundation (ASF) under 
one</span></div><div class="line"><a name="l00002"></a><span class="lineno">    
2</span>&#160;<span class="comment">// or more contributor license agreements.  
See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span 
class="lineno">    3</span>&#160;<span class="comment">// distributed with this 
work for additional information</span></div><div class="line"><a 
name="l00004"></a><span class="lineno">    4</span>&#160;<span 
class="comment">// regarding copyright ownership.  The ASF licenses this 
file</span></div><div class="line"><a name="l00005"></a><span class="lineno">   
 5</span>&#160;<span class="comment">// to you under the Apache License, 
Version 2.0 (the</span></div><div class="line"><
 a name="l00006"></a><span class="lineno">    6</span>&#160;<span 
class="comment">// &quot;License&quot;); you may not use this file except in 
compliance</span></div><div class="line"><a name="l00007"></a><span 
class="lineno">    7</span>&#160;<span class="comment">// with the License.  
You may obtain a copy of the License at</span></div><div class="line"><a 
name="l00008"></a><span class="lineno">    8</span>&#160;<span 
class="comment">//</span></div><div class="line"><a name="l00009"></a><span 
class="lineno">    9</span>&#160;<span class="comment">//     
http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a 
name="l00010"></a><span class="lineno">   10</span>&#160;<span 
class="comment">//</span></div><div class="line"><a name="l00011"></a><span 
class="lineno">   11</span>&#160;<span class="comment">// Unless required by 
applicable law or agreed to in writing, software</span></div><div 
class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span
  class="comment">// distributed under the License is distributed on an 
&quot;AS IS&quot; BASIS,</span></div><div class="line"><a 
name="l00013"></a><span class="lineno">   13</span>&#160;<span 
class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
or implied.</span></div><div class="line"><a name="l00014"></a><span 
class="lineno">   14</span>&#160;<span class="comment">// See the License for 
the specific language governing permissions and</span></div><div 
class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span 
class="comment">// limitations under the License.</span></div><div 
class="line"><a name="l00016"></a><span class="lineno">   
16</span>&#160;</div><div class="line"><a name="l00017"></a><span 
class="lineno">   17</span>&#160;<span class="preprocessor">#ifndef 
__MESOS_SLAVE_CONTAINERIZER_HPP__</span></div><div class="line"><a 
name="l00018"></a><span class="lineno">   18</span>&#160;<span 
class="preprocessor">#define __MESOS_SLAVE_CO
 NTAINERIZER_HPP__</span></div><div class="line"><a name="l00019"></a><span 
class="lineno">   19</span>&#160;</div><div class="line"><a 
name="l00020"></a><span class="lineno">   20</span>&#160;<span 
class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a 
name="l00021"></a><span class="lineno">   21</span>&#160;</div><div 
class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span 
class="preprocessor">#include &lt;<a class="code" 
href="3rdparty_2libprocess_2include_2process_2shared_8hpp.html">process/shared.hpp</a>&gt;</span></div><div
 class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span 
class="preprocessor">#include &lt;<a class="code" 
href="subprocess_8hpp.html">process/subprocess.hpp</a>&gt;</span></div><div 
class="line"><a name="l00024"></a><span class="lineno">   
24</span>&#160;</div><div class="line"><a name="l00025"></a><span 
class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;<a 
class="code
 " href="option_8hpp.html">stout/option.hpp</a>&gt;</span></div><div 
class="line"><a name="l00026"></a><span class="lineno">   
26</span>&#160;</div><div class="line"><a name="l00027"></a><span 
class="lineno">   27</span>&#160;<span class="comment">// ONLY USEFUL AFTER 
RUNNING PROTOC.</span></div><div class="line"><a name="l00028"></a><span 
class="lineno">   28</span>&#160;<span class="preprocessor">#include 
&lt;mesos/slave/containerizer.pb.h&gt;</span></div><div class="line"><a 
name="l00029"></a><span class="lineno">   29</span>&#160;</div><div 
class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span 
class="keyword">namespace </span><a class="code" 
href="namespacemesos.html">mesos</a> {</div><div class="line"><a 
name="l00031"></a><span class="lineno">   31</span>&#160;<span 
class="keyword">namespace </span>slave {</div><div class="line"><a 
name="l00032"></a><span class="lineno">   32</span>&#160;</div><div 
class="line"><a name="l00037"></a><span class="lineno"><
 a class="line" href="structmesos_1_1slave_1_1ContainerIO.html">   
37</a></span>&#160;<span class="keyword">struct </span><a class="code" 
href="structmesos_1_1slave_1_1ContainerIO.html">ContainerIO</a></div><div 
class="line"><a name="l00038"></a><span class="lineno">   
38</span>&#160;{</div><div class="line"><a name="l00052"></a><span 
class="lineno"><a class="line" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">   52</a></span>&#160;  
<span class="keyword">class </span><a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a></div><div 
class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;  
{</div><div class="line"><a name="l00054"></a><span class="lineno">   
54</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a 
name="l00055"></a><span class="lineno"><a class="line" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">
   55</a></span>&#160;    <span class="keyword">enum class</span>
  <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a></div><div
 class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    
{</div><div class="line"><a name="l00057"></a><span class="lineno">   
57</span>&#160;      <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99aa8fa6b553b655657f943cb8fd85859d1">FD</a>,</div><div
 class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;      
<a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99a5ffb5f0d0de78321df46fc7c93ca64a3">PATH</a></div><div
 class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    
};</div><div class="line"><a name="l00060"></a><span class="lineno">   
60</span>&#160;</div><div class="line"><a name="l00061"></a><span 
class="lineno"><a class="line" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a341f45297ccb682a0c97
 e7f164d03a55">   61</a></span>&#160;    <span class="keyword">static</span> <a 
class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a 
class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a341f45297ccb682a0c97e7f164d03a55">PATH</a>(<span
 class="keyword">const</span> std::string&amp; <a class="code" 
href="namespacepath.html">path</a>)</div><div class="line"><a 
name="l00062"></a><span class="lineno">   62</span>&#160;    {</div><div 
class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;      
<span class="keywordflow">return</span> <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99a5ffb5f0d0de78321df46fc7c93ca64a3">Type::PATH</a>,
 path);</div><div class="line"><a name="l00064"></a><span class="lineno">   
64</span>&#160;    }</div><div class="line"><a name="l00065"></a><span 
class="lineno">   65</span>&#160;</di
 v><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">
   66</a></span>&#160;    <span class="keyword">static</span> <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">FD</a>(<a
 class="code" 
href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <span 
class="keywordtype">bool</span> closeOnDestruction = <span 
class="keyword">true</span>)</div><div class="line"><a name="l00067"></a><span 
class="lineno">   67</span>&#160;    {</div><div class="line"><a 
name="l00068"></a><span class="lineno">   68</span>&#160;      <span 
class="keywordflow">return</span> <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99aa8fa
 6b553b655657f943cb8fd85859d1">Type::FD</a>, fd, closeOnDestruction);</div><div 
class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    
}</div><div class="line"><a name="l00070"></a><span class="lineno">   
70</span>&#160;</div><div class="line"><a name="l00071"></a><span 
class="lineno"><a class="line" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a9385d497de23bc65844d6701627ab5b0">
   71</a></span>&#160;    <span class="keyword">operator</span> <a class="code" 
href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a> 
()<span class="keyword"> const</span></div><div class="line"><a 
name="l00072"></a><span class="lineno">   72</span>&#160;<span class="keyword"> 
   </span>{</div><div class="line"><a name="l00073"></a><span class="lineno">   
73</span>&#160;      <span class="keywordflow">switch</span> (type_) 
{</div><div class="line"><a name="l00074"></a><span class="lineno">   
74</span>&#160;        <span class="keywordflow">case</span> <a class="
 code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99aa8fa6b553b655657f943cb8fd85859d1">Type::FD</a>:</div><div
 class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;      
    <span class="keywordflow">return</span> <a class="code" 
href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">process::Subprocess::FD</a>(*fd_);</div><div
 class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;      
  <span class="keywordflow">case</span> <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99a5ffb5f0d0de78321df46fc7c93ca64a3">Type::PATH</a>:</div><div
 class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;      
    <span class="keywordflow">return</span> <a class="code" 
href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a>(path_.get());</div><div
 class="line"><a name="l00078"></a><span cla
 ss="lineno">   78</span>&#160;        <span 
class="keywordflow">default</span>:</div><div class="line"><a 
name="l00079"></a><span class="lineno">   79</span>&#160;          <a 
class="code" 
href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div
 class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;      
}</div><div class="line"><a name="l00081"></a><span class="lineno">   
81</span>&#160;    }</div><div class="line"><a name="l00082"></a><span 
class="lineno">   82</span>&#160;</div><div class="line"><a 
name="l00083"></a><span class="lineno">   83</span>&#160;  <span 
class="keyword">private</span>:</div><div class="line"><a 
name="l00084"></a><span class="lineno">   84</span>&#160;    <span 
class="comment">// A simple abstraction to wrap an FD and (optionally) close 
it</span></div><div class="line"><a name="l00085"></a><span class="lineno">   
85</span>&#160;    <span class="comment">// on destruction. We know that we 
never copy inst
 ances of this</span></div><div class="line"><a name="l00086"></a><span 
class="lineno">   86</span>&#160;    <span class="comment">// class once they 
are instantiated, so it&#39;s OK to call</span></div><div class="line"><a 
name="l00087"></a><span class="lineno">   87</span>&#160;    <span 
class="comment">// `close()` in the destructor since only one reference 
will</span></div><div class="line"><a name="l00088"></a><span class="lineno">   
88</span>&#160;    <span class="comment">// ever exist to it.</span></div><div 
class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    
<span class="keyword">class </span>FDWrapper</div><div class="line"><a 
name="l00090"></a><span class="lineno">   90</span>&#160;    {</div><div 
class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    
<span class="keyword">public</span>:</div><div class="line"><a 
name="l00092"></a><span class="lineno">   92</span>&#160;      FDWrapper(<a 
class="code" href="int__fd_8hpp.html#ae
 a4dbda01c90455f158ffa9b924c2f07">int_fd</a> _fd, <span 
class="keywordtype">bool</span> _closeOnDestruction)</div><div class="line"><a 
name="l00093"></a><span class="lineno">   93</span>&#160;        : fd(_fd), 
closeOnDestruction(_closeOnDestruction) {}</div><div class="line"><a 
name="l00094"></a><span class="lineno">   94</span>&#160;</div><div 
class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;      
~FDWrapper() {</div><div class="line"><a name="l00096"></a><span 
class="lineno">   96</span>&#160;        CHECK(fd &gt;= 0);</div><div 
class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;       
 <span class="keywordflow">if</span> (closeOnDestruction) {</div><div 
class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;       
   close(fd);</div><div class="line"><a name="l00099"></a><span class="lineno"> 
  99</span>&#160;        }</div><div class="line"><a name="l00100"></a><span 
class="lineno">  100</span>&#160;      }</div><di
 v class="line"><a name="l00101"></a><span class="lineno">  
101</span>&#160;</div><div class="line"><a name="l00102"></a><span 
class="lineno">  102</span>&#160;      <span class="keyword">operator</span> <a 
class="code" 
href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>()<span 
class="keyword"> const </span>{ <span class="keywordflow">return</span> fd; 
}</div><div class="line"><a name="l00103"></a><span class="lineno">  
103</span>&#160;</div><div class="line"><a name="l00104"></a><span 
class="lineno">  104</span>&#160;    <span 
class="keyword">private</span>:</div><div class="line"><a 
name="l00105"></a><span class="lineno">  105</span>&#160;      FDWrapper(<span 
class="keyword">const</span> FDWrapper&amp; fd) = <span 
class="keyword">delete</span>;</div><div class="line"><a 
name="l00106"></a><span class="lineno">  106</span>&#160;</div><div 
class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;      
<a class="code" href="int__fd_8hpp.html#aea4dbda0
 1c90455f158ffa9b924c2f07">int_fd</a> fd;</div><div class="line"><a 
name="l00108"></a><span class="lineno">  108</span>&#160;      <span 
class="keywordtype">bool</span> closeOnDestruction;</div><div class="line"><a 
name="l00109"></a><span class="lineno">  109</span>&#160;    };</div><div 
class="line"><a name="l00110"></a><span class="lineno">  
110</span>&#160;</div><div class="line"><a name="l00111"></a><span 
class="lineno">  111</span>&#160;    <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a>
 _type, <a class="code" 
href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> _fd, 
<span class="keywordtype">bool</span> closeOnDestruction)</div><div 
class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;      
: type_(_type),</div><div class="line"><a name="l00113"></a><span 
class="lineno">  113</span>&#160;        fd_(<spa
 n class="keyword">new</span> FDWrapper(_fd, closeOnDestruction)),</div><div 
class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;       
 path_(<a class="code" href="structNone.html">None</a>()) {}</div><div 
class="line"><a name="l00115"></a><span class="lineno">  
115</span>&#160;</div><div class="line"><a name="l00116"></a><span 
class="lineno">  116</span>&#160;    <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a>
 _type, <span class="keyword">const</span> std::string&amp; _path)</div><div 
class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;      
: type_(_type),</div><div class="line"><a name="l00118"></a><span 
class="lineno">  118</span>&#160;        fd_(),</div><div class="line"><a 
name="l00119"></a><span class="lineno">  119</span>&#160;        path_(_path) 
{}</div><div class="line"><a name="l00120"></a><
 span class="lineno">  120</span>&#160;</div><div class="line"><a 
name="l00121"></a><span class="lineno">  121</span>&#160;    <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a>
 type_;</div><div class="line"><a name="l00122"></a><span class="lineno">  
122</span>&#160;    <a class="code" 
href="classprocess_1_1Shared.html">process::Shared&lt;FDWrapper&gt;</a> 
fd_;</div><div class="line"><a name="l00123"></a><span class="lineno">  
123</span>&#160;    <a class="code" 
href="classOption.html">Option&lt;std::string&gt;</a> path_;</div><div 
class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;  
};</div><div class="line"><a name="l00125"></a><span class="lineno">  
125</span>&#160;</div><div class="line"><a name="l00130"></a><span 
class="lineno"><a class="line" 
href="structmesos_1_1slave_1_1ContainerIO.html#a71d1190a036c7e3d2af3fcee95e8d2c8">
  130</a></span>&#160;  <a class="code" href="classmesos_1_1slave_1_1Cont
 ainerIO_1_1IO.html">IO</a> <a class="code" 
href="structmesos_1_1slave_1_1ContainerIO.html#a71d1190a036c7e3d2af3fcee95e8d2c8">in</a>
 = <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">IO::FD</a>(<a
 class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>,
 <span class="keyword">false</span>);</div><div class="line"><a 
name="l00131"></a><span class="lineno">  131</span>&#160;</div><div 
class="line"><a name="l00136"></a><span class="lineno"><a class="line" 
href="structmesos_1_1slave_1_1ContainerIO.html#a0de456b091225ae112d9799652d990ed">
  136</a></span>&#160;  <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" 
href="structmesos_1_1slave_1_1ContainerIO.html#a0de456b091225ae112d9799652d990ed">out</a>
 = <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">IO::FD</a>(<a
 class="code" h
 
ref="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>,
 <span class="keyword">false</span>);</div><div class="line"><a 
name="l00137"></a><span class="lineno">  137</span>&#160;</div><div 
class="line"><a name="l00141"></a><span class="lineno"><a class="line" 
href="structmesos_1_1slave_1_1ContainerIO.html#a3cbd98f5b391bb77ea645fdeafb605cf">
  141</a></span>&#160;  <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" 
href="structmesos_1_1slave_1_1ContainerIO.html#a3cbd98f5b391bb77ea645fdeafb605cf">err</a>
 = <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">IO::FD</a>(<a
 class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>,
 <span class="keyword">false</span>);</div><div class="line"><a 
name="l00142"></a><span class="lineno">  142</span>&#160;};</div><div 
class="line"><a name=
 "l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a 
name="l00144"></a><span class="lineno">  144</span>&#160;} <span 
class="comment">// namespace slave {</span></div><div class="line"><a 
name="l00145"></a><span class="lineno">  145</span>&#160;} <span 
class="comment">// namespace mesos {</span></div><div class="line"><a 
name="l00146"></a><span class="lineno">  146</span>&#160;</div><div 
class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span 
class="preprocessor">#endif // 
__MESOS_SLAVE_CONTAINERIZER_HPP__</span></div><div class="ttc" 
id="namespacepath_html"><div class="ttname"><a 
href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> 
path.hpp:26</div></div>
+<a href="include_2mesos_2slave_2containerizer_8hpp.html">Go to the 
documentation of this file.</a><div class="fragment"><div class="line"><a 
name="l00001"></a><span class="lineno">    1</span>&#160;<span 
class="comment">// Licensed to the Apache Software Foundation (ASF) under 
one</span></div><div class="line"><a name="l00002"></a><span class="lineno">    
2</span>&#160;<span class="comment">// or more contributor license agreements.  
See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span 
class="lineno">    3</span>&#160;<span class="comment">// distributed with this 
work for additional information</span></div><div class="line"><a 
name="l00004"></a><span class="lineno">    4</span>&#160;<span 
class="comment">// regarding copyright ownership.  The ASF licenses this 
file</span></div><div class="line"><a name="l00005"></a><span class="lineno">   
 5</span>&#160;<span class="comment">// to you under the Apache License, 
Version 2.0 (the</span></div><div class="line"><
 a name="l00006"></a><span class="lineno">    6</span>&#160;<span 
class="comment">// &quot;License&quot;); you may not use this file except in 
compliance</span></div><div class="line"><a name="l00007"></a><span 
class="lineno">    7</span>&#160;<span class="comment">// with the License.  
You may obtain a copy of the License at</span></div><div class="line"><a 
name="l00008"></a><span class="lineno">    8</span>&#160;<span 
class="comment">//</span></div><div class="line"><a name="l00009"></a><span 
class="lineno">    9</span>&#160;<span class="comment">//     
http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a 
name="l00010"></a><span class="lineno">   10</span>&#160;<span 
class="comment">//</span></div><div class="line"><a name="l00011"></a><span 
class="lineno">   11</span>&#160;<span class="comment">// Unless required by 
applicable law or agreed to in writing, software</span></div><div 
class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span
  class="comment">// distributed under the License is distributed on an 
&quot;AS IS&quot; BASIS,</span></div><div class="line"><a 
name="l00013"></a><span class="lineno">   13</span>&#160;<span 
class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
or implied.</span></div><div class="line"><a name="l00014"></a><span 
class="lineno">   14</span>&#160;<span class="comment">// See the License for 
the specific language governing permissions and</span></div><div 
class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span 
class="comment">// limitations under the License.</span></div><div 
class="line"><a name="l00016"></a><span class="lineno">   
16</span>&#160;</div><div class="line"><a name="l00017"></a><span 
class="lineno">   17</span>&#160;<span class="preprocessor">#ifndef 
__MESOS_SLAVE_CONTAINERIZER_HPP__</span></div><div class="line"><a 
name="l00018"></a><span class="lineno">   18</span>&#160;<span 
class="preprocessor">#define __MESOS_SLAVE_CO
 NTAINERIZER_HPP__</span></div><div class="line"><a name="l00019"></a><span 
class="lineno">   19</span>&#160;</div><div class="line"><a 
name="l00020"></a><span class="lineno">   20</span>&#160;<span 
class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a 
name="l00021"></a><span class="lineno">   21</span>&#160;</div><div 
class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span 
class="preprocessor">#include &lt;<a class="code" 
href="3rdparty_2libprocess_2include_2process_2shared_8hpp.html">process/shared.hpp</a>&gt;</span></div><div
 class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span 
class="preprocessor">#include &lt;<a class="code" 
href="include_2process_2subprocess_8hpp.html">process/subprocess.hpp</a>&gt;</span></div><div
 class="line"><a name="l00024"></a><span class="lineno">   
24</span>&#160;</div><div class="line"><a name="l00025"></a><span 
class="lineno">   25</span>&#160;<span class="preprocessor">#include 
 &lt;<a class="code" 
href="option_8hpp.html">stout/option.hpp</a>&gt;</span></div><div 
class="line"><a name="l00026"></a><span class="lineno">   
26</span>&#160;</div><div class="line"><a name="l00027"></a><span 
class="lineno">   27</span>&#160;<span class="comment">// ONLY USEFUL AFTER 
RUNNING PROTOC.</span></div><div class="line"><a name="l00028"></a><span 
class="lineno">   28</span>&#160;<span class="preprocessor">#include 
&lt;mesos/slave/containerizer.pb.h&gt;</span></div><div class="line"><a 
name="l00029"></a><span class="lineno">   29</span>&#160;</div><div 
class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span 
class="keyword">namespace </span><a class="code" 
href="namespacemesos.html">mesos</a> {</div><div class="line"><a 
name="l00031"></a><span class="lineno">   31</span>&#160;<span 
class="keyword">namespace </span>slave {</div><div class="line"><a 
name="l00032"></a><span class="lineno">   32</span>&#160;</div><div 
class="line"><a name="l00037"></a><spa
 n class="lineno"><a class="line" 
href="structmesos_1_1slave_1_1ContainerIO.html">   37</a></span>&#160;<span 
class="keyword">struct </span><a class="code" 
href="structmesos_1_1slave_1_1ContainerIO.html">ContainerIO</a></div><div 
class="line"><a name="l00038"></a><span class="lineno">   
38</span>&#160;{</div><div class="line"><a name="l00052"></a><span 
class="lineno"><a class="line" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">   52</a></span>&#160;  
<span class="keyword">class </span><a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a></div><div 
class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;  
{</div><div class="line"><a name="l00054"></a><span class="lineno">   
54</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a 
name="l00055"></a><span class="lineno"><a class="line" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">
   55</a></span>&#160;    <span class="keyword"
 >enum class</span> <a class="code" 
 >href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a></div><div
 > class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    
 >{</div><div class="line"><a name="l00057"></a><span class="lineno">   
 >57</span>&#160;      <a class="code" 
 >href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99aa8fa6b553b655657f943cb8fd85859d1">FD</a>,</div><div
 > class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    
 >  <a class="code" 
 >href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99a5ffb5f0d0de78321df46fc7c93ca64a3">PATH</a></div><div
 > class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    
 >};</div><div class="line"><a name="l00060"></a><span class="lineno">   
 >60</span>&#160;</div><div class="line"><a name="l00061"></a><span 
 >class="lineno"><a class="line" 
 >href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a34
 1f45297ccb682a0c97e7f164d03a55">   61</a></span>&#160;    <span 
class="keyword">static</span> <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a341f45297ccb682a0c97e7f164d03a55">PATH</a>(<span
 class="keyword">const</span> std::string&amp; <a class="code" 
href="namespacepath.html">path</a>)</div><div class="line"><a 
name="l00062"></a><span class="lineno">   62</span>&#160;    {</div><div 
class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;      
<span class="keywordflow">return</span> <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99a5ffb5f0d0de78321df46fc7c93ca64a3">Type::PATH</a>,
 path);</div><div class="line"><a name="l00064"></a><span class="lineno">   
64</span>&#160;    }</div><div class="line"><a name="l00065"></a><span 
class="lineno">   6
 5</span>&#160;</div><div class="line"><a name="l00066"></a><span 
class="lineno"><a class="line" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">
   66</a></span>&#160;    <span class="keyword">static</span> <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">FD</a>(<a
 class="code" 
href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <span 
class="keywordtype">bool</span> closeOnDestruction = <span 
class="keyword">true</span>)</div><div class="line"><a name="l00067"></a><span 
class="lineno">   67</span>&#160;    {</div><div class="line"><a 
name="l00068"></a><span class="lineno">   68</span>&#160;      <span 
class="keywordflow">return</span> <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b95
 7d5d24b8f9e99aa8fa6b553b655657f943cb8fd85859d1">Type::FD</a>, fd, 
closeOnDestruction);</div><div class="line"><a name="l00069"></a><span 
class="lineno">   69</span>&#160;    }</div><div class="line"><a 
name="l00070"></a><span class="lineno">   70</span>&#160;</div><div 
class="line"><a name="l00071"></a><span class="lineno"><a class="line" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a9385d497de23bc65844d6701627ab5b0">
   71</a></span>&#160;    <span class="keyword">operator</span> <a class="code" 
href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a> 
()<span class="keyword"> const</span></div><div class="line"><a 
name="l00072"></a><span class="lineno">   72</span>&#160;<span class="keyword"> 
   </span>{</div><div class="line"><a name="l00073"></a><span class="lineno">   
73</span>&#160;      <span class="keywordflow">switch</span> (type_) 
{</div><div class="line"><a name="l00074"></a><span class="lineno">   
74</span>&#160;        <span class="keywordflow">case
 </span> <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99aa8fa6b553b655657f943cb8fd85859d1">Type::FD</a>:</div><div
 class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;      
    <span class="keywordflow">return</span> <a class="code" 
href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">process::Subprocess::FD</a>(*fd_);</div><div
 class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;      
  <span class="keywordflow">case</span> <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99a5ffb5f0d0de78321df46fc7c93ca64a3">Type::PATH</a>:</div><div
 class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;      
    <span class="keywordflow">return</span> <a class="code" 
href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a>(path_.get());</div><div
 class="line"><a name="l00
 078"></a><span class="lineno">   78</span>&#160;        <span 
class="keywordflow">default</span>:</div><div class="line"><a 
name="l00079"></a><span class="lineno">   79</span>&#160;          <a 
class="code" 
href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div
 class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;      
}</div><div class="line"><a name="l00081"></a><span class="lineno">   
81</span>&#160;    }</div><div class="line"><a name="l00082"></a><span 
class="lineno">   82</span>&#160;</div><div class="line"><a 
name="l00083"></a><span class="lineno">   83</span>&#160;  <span 
class="keyword">private</span>:</div><div class="line"><a 
name="l00084"></a><span class="lineno">   84</span>&#160;    <span 
class="comment">// A simple abstraction to wrap an FD and (optionally) close 
it</span></div><div class="line"><a name="l00085"></a><span class="lineno">   
85</span>&#160;    <span class="comment">// on destruction. We know that 
 we never copy instances of this</span></div><div class="line"><a 
name="l00086"></a><span class="lineno">   86</span>&#160;    <span 
class="comment">// class once they are instantiated, so it&#39;s OK to 
call</span></div><div class="line"><a name="l00087"></a><span class="lineno">   
87</span>&#160;    <span class="comment">// `close()` in the destructor since 
only one reference will</span></div><div class="line"><a 
name="l00088"></a><span class="lineno">   88</span>&#160;    <span 
class="comment">// ever exist to it.</span></div><div class="line"><a 
name="l00089"></a><span class="lineno">   89</span>&#160;    <span 
class="keyword">class </span>FDWrapper</div><div class="line"><a 
name="l00090"></a><span class="lineno">   90</span>&#160;    {</div><div 
class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    
<span class="keyword">public</span>:</div><div class="line"><a 
name="l00092"></a><span class="lineno">   92</span>&#160;      FDWrapper(<a 
class="code" href="in
 t__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> _fd, <span 
class="keywordtype">bool</span> _closeOnDestruction)</div><div class="line"><a 
name="l00093"></a><span class="lineno">   93</span>&#160;        : fd(_fd), 
closeOnDestruction(_closeOnDestruction) {}</div><div class="line"><a 
name="l00094"></a><span class="lineno">   94</span>&#160;</div><div 
class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;      
~FDWrapper() {</div><div class="line"><a name="l00096"></a><span 
class="lineno">   96</span>&#160;        CHECK(fd &gt;= 0);</div><div 
class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;       
 <span class="keywordflow">if</span> (closeOnDestruction) {</div><div 
class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;       
   close(fd);</div><div class="line"><a name="l00099"></a><span class="lineno"> 
  99</span>&#160;        }</div><div class="line"><a name="l00100"></a><span 
class="lineno">  100</span>&#16
 0;      }</div><div class="line"><a name="l00101"></a><span class="lineno">  
101</span>&#160;</div><div class="line"><a name="l00102"></a><span 
class="lineno">  102</span>&#160;      <span class="keyword">operator</span> <a 
class="code" 
href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>()<span 
class="keyword"> const </span>{ <span class="keywordflow">return</span> fd; 
}</div><div class="line"><a name="l00103"></a><span class="lineno">  
103</span>&#160;</div><div class="line"><a name="l00104"></a><span 
class="lineno">  104</span>&#160;    <span 
class="keyword">private</span>:</div><div class="line"><a 
name="l00105"></a><span class="lineno">  105</span>&#160;      FDWrapper(<span 
class="keyword">const</span> FDWrapper&amp; fd) = <span 
class="keyword">delete</span>;</div><div class="line"><a 
name="l00106"></a><span class="lineno">  106</span>&#160;</div><div 
class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;      
<a class="code" href="int__fd_8
 hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd;</div><div 
class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;      
<span class="keywordtype">bool</span> closeOnDestruction;</div><div 
class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    
};</div><div class="line"><a name="l00110"></a><span class="lineno">  
110</span>&#160;</div><div class="line"><a name="l00111"></a><span 
class="lineno">  111</span>&#160;    <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a>
 _type, <a class="code" 
href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> _fd, 
<span class="keywordtype">bool</span> closeOnDestruction)</div><div 
class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;      
: type_(_type),</div><div class="line"><a name="l00113"></a><span 
class="lineno">  113</span>&#16
 0;        fd_(<span class="keyword">new</span> FDWrapper(_fd, 
closeOnDestruction)),</div><div class="line"><a name="l00114"></a><span 
class="lineno">  114</span>&#160;        path_(<a class="code" 
href="structNone.html">None</a>()) {}</div><div class="line"><a 
name="l00115"></a><span class="lineno">  115</span>&#160;</div><div 
class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <a 
class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a 
class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a>
 _type, <span class="keyword">const</span> std::string&amp; _path)</div><div 
class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;      
: type_(_type),</div><div class="line"><a name="l00118"></a><span 
class="lineno">  118</span>&#160;        fd_(),</div><div class="line"><a 
name="l00119"></a><span class="lineno">  119</span>&#160;        path_(_path) 
{}</div><div class="line"><a n
 ame="l00120"></a><span class="lineno">  120</span>&#160;</div><div 
class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <a 
class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a>
 type_;</div><div class="line"><a name="l00122"></a><span class="lineno">  
122</span>&#160;    <a class="code" 
href="classprocess_1_1Shared.html">process::Shared&lt;FDWrapper&gt;</a> 
fd_;</div><div class="line"><a name="l00123"></a><span class="lineno">  
123</span>&#160;    <a class="code" 
href="classOption.html">Option&lt;std::string&gt;</a> path_;</div><div 
class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;  
};</div><div class="line"><a name="l00125"></a><span class="lineno">  
125</span>&#160;</div><div class="line"><a name="l00130"></a><span 
class="lineno"><a class="line" 
href="structmesos_1_1slave_1_1ContainerIO.html#a71d1190a036c7e3d2af3fcee95e8d2c8">
  130</a></span>&#160;  <a class="code" href="classmeso
 s_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" 
href="structmesos_1_1slave_1_1ContainerIO.html#a71d1190a036c7e3d2af3fcee95e8d2c8">in</a>
 = <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">IO::FD</a>(<a
 class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>,
 <span class="keyword">false</span>);</div><div class="line"><a 
name="l00131"></a><span class="lineno">  131</span>&#160;</div><div 
class="line"><a name="l00136"></a><span class="lineno"><a class="line" 
href="structmesos_1_1slave_1_1ContainerIO.html#a0de456b091225ae112d9799652d990ed">
  136</a></span>&#160;  <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" 
href="structmesos_1_1slave_1_1ContainerIO.html#a0de456b091225ae112d9799652d990ed">out</a>
 = <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">IO::FD</a>
 (<a class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>,
 <span class="keyword">false</span>);</div><div class="line"><a 
name="l00137"></a><span class="lineno">  137</span>&#160;</div><div 
class="line"><a name="l00141"></a><span class="lineno"><a class="line" 
href="structmesos_1_1slave_1_1ContainerIO.html#a3cbd98f5b391bb77ea645fdeafb605cf">
  141</a></span>&#160;  <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" 
href="structmesos_1_1slave_1_1ContainerIO.html#a3cbd98f5b391bb77ea645fdeafb605cf">err</a>
 = <a class="code" 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">IO::FD</a>(<a
 class="code" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>,
 <span class="keyword">false</span>);</div><div class="line"><a 
name="l00142"></a><span class="lineno">  142</span>&#160;};</div><div cla
 ss="line"><a name="l00143"></a><span class="lineno">  
143</span>&#160;</div><div class="line"><a name="l00144"></a><span 
class="lineno">  144</span>&#160;} <span class="comment">// namespace slave 
{</span></div><div class="line"><a name="l00145"></a><span class="lineno">  
145</span>&#160;} <span class="comment">// namespace mesos {</span></div><div 
class="line"><a name="l00146"></a><span class="lineno">  
146</span>&#160;</div><div class="line"><a name="l00147"></a><span 
class="lineno">  147</span>&#160;<span class="preprocessor">#endif // 
__MESOS_SLAVE_CONTAINERIZER_HPP__</span></div><div class="ttc" 
id="namespacepath_html"><div class="ttname"><a 
href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> 
path.hpp:26</div></div>
 <div class="ttc" id="classOption_html"><div class="ttname"><a 
href="classOption.html">Option&lt; std::string &gt;</a></div></div>
-<div class="ttc" id="subprocess_8hpp_html"><div class="ttname"><a 
href="subprocess_8hpp.html">subprocess.hpp</a></div></div>
 <div class="ttc" id="classmesos_1_1slave_1_1ContainerIO_1_1IO_html"><div 
class="ttname"><a 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">mesos::slave::ContainerIO::IO</a></div><div
 class="ttdoc">Describes how the containerizer redirects I/O for 
stdin/stdout/stderr of a container. </div><div class="ttdef"><b>Definition:</b> 
containerizer.hpp:52</div></div>
+<div class="ttc" id="include_2process_2subprocess_8hpp_html"><div 
class="ttname"><a 
href="include_2process_2subprocess_8hpp.html">subprocess.hpp</a></div></div>
 <div class="ttc" 
id="classprocess_1_1Subprocess_html_a54793e9c516257d68776f63f0872c3c7"><div 
class="ttname"><a 
href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a></div><div
 class="ttdeci">static IO PATH(const std::string &amp;path)</div></div>
 <div class="ttc" id="structmesos_1_1slave_1_1ContainerIO_html"><div 
class="ttname"><a 
href="structmesos_1_1slave_1_1ContainerIO.html">mesos::slave::ContainerIO</a></div><div
 class="ttdoc">An abstraction around the IO classes used to redirect 
stdin/stdout/stderr to/from a container by the ...</div><div 
class="ttdef"><b>Definition:</b> containerizer.hpp:37</div></div>
 <div class="ttc" 
id="classmesos_1_1slave_1_1ContainerIO_1_1IO_html_a96bd292fdd5238a2c080e5f2d1a1535c"><div
 class="ttname"><a 
href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">mesos::slave::ContainerIO::IO::FD</a></div><div
 class="ttdeci">static IO FD(int_fd fd, bool closeOnDestruction=true)</div><div 
class="ttdef"><b>Definition:</b> containerizer.hpp:66</div></div>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/include_2process_2subprocess_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/include_2process_2subprocess_8hpp.html 
b/content/api/latest/c++/include_2process_2subprocess_8hpp.html
new file mode 100644
index 0000000..be0f670
--- /dev/null
+++ b/content/api/latest/c++/include_2process_2subprocess_8hpp.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://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.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/include/process/subprocess.hpp File 
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="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">Apache Mesos
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="examples.html"><span>Examples</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+    </ul>
+  </div>
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" 
href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li 
class="navelem"><a class="el" 
href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li 
class="navelem"><a class="el" 
href="dir_eac18f7a64f6f8afbd1493ef4e09abdb.html">include</a></li><li 
class="navelem"><a class="el" 
href="dir_1894286df79cf582d947dbc4268b06cf.html">process</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">subprocess.hpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;map&gt;</code><br />
+<code>#include &lt;memory&gt;</code><br />
+<code>#include &lt;string&gt;</code><br />
+<code>#include &lt;vector&gt;</code><br />
+<code>#include &lt;<a class="el" 
href="future_8hpp_source.html">process/future.hpp</a>&gt;</code><br />
+<code>#include &lt;<a class="el" 
href="3rdparty_2stout_2include_2stout_2flags_8hpp_source.html">stout/flags.hpp</a>&gt;</code><br
 />
+<code>#include &lt;<a class="el" 
href="lambda_8hpp_source.html">stout/lambda.hpp</a>&gt;</code><br />
+<code>#include &lt;<a class="el" 
href="none_8hpp_source.html">stout/none.hpp</a>&gt;</code><br />
+<code>#include &lt;<a class="el" 
href="option_8hpp_source.html">stout/option.hpp</a>&gt;</code><br />
+<code>#include &lt;<a class="el" 
href="try_8hpp_source.html">stout/try.hpp</a>&gt;</code><br />
+<code>#include &lt;<a class="el" 
href="shell_8hpp_source.html">stout/os/shell.hpp</a>&gt;</code><br />
+<code>#include &lt;<a class="el" 
href="int__fd_8hpp_source.html">stout/os/int_fd.hpp</a>&gt;</code><br />
+</div>
+<p><a href="include_2process_2subprocess_8hpp_source.html">Go to the source 
code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class 
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classprocess_1_1Subprocess.html">process::Subprocess</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td 
class="mdescRight">Represents a fork() exec()ed subprocess.  <a 
href="classprocess_1_1Subprocess.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class 
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td 
class="mdescRight">Describes how the I/O is redirected for stdin/stdout/stderr. 
 <a href="classprocess_1_1Subprocess_1_1IO.html#details">More...</a><br 
/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct 
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">process::Subprocess::IO::InputFileDescriptors</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td 
class="mdescRight">For input file descriptors a child reads from the 
<code>read</code> file descriptor and a parent may write to the 
<code>write</code> file descriptor if one is present.  <a 
href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#details">More...</a><br
 /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct 
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">process::Subprocess::IO::OutputFileDescriptors</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td 
class="mdescRight">For output file descriptors a child writes to the 
<code>write</code> file descriptor and a parent may read from the 
<code>read</code> file descriptor if one is present.  <a 
href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#details">More...</a><br
 /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct 
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="structprocess_1_1Subprocess_1_1ParentHook.html">process::Subprocess::ParentHook</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A 
hook can be passed to a <code>subprocess</code> call.  <a 
href="structprocess_1_1Subprocess_1_1ParentHook.html#details">More...</a><br 
/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class 
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="classprocess_1_1Subprocess_1_1ChildHook.html">process::Subprocess::ChildHook</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A 
<code><a class="el" href="classprocess_1_1Subprocess_1_1ChildHook.html" 
title="A ChildHook can be passed to a subprocess call. ">ChildHook</a></code> 
can be passed to a <code>subprocess</code> call.  <a 
href="classprocess_1_1Subprocess_1_1ChildHook.html#details">More...</a><br 
/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceprocess"><td class="memItemLeft" align="right" 
valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="namespaceprocess.html">process</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:afc6611c4913642642277b44447a16e55"><td class="memItemLeft" 
align="right" valign="top">using&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="namespaceprocess.html#afc6611c4913642642277b44447a16e55">process::InputFileDescriptors</a>
 = Subprocess::IO::InputFileDescriptors</td></tr>
+<tr class="separator:afc6611c4913642642277b44447a16e55"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a882829822afa4f33b90aafc9c4ffa9af"><td class="memItemLeft" 
align="right" valign="top">using&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af">process::OutputFileDescriptors</a>
 = Subprocess::IO::OutputFileDescriptors</td></tr>
+<tr class="separator:a882829822afa4f33b90aafc9c4ffa9af"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 
name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a2d7e0a283bc0c9eca8a8b0532e026269"><td class="memItemLeft" 
align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; 
Subprocess &gt;&#160;</td><td class="memItemRight" valign="bottom"><a 
class="el" 
href="namespaceprocess.html#a2d7e0a283bc0c9eca8a8b0532e026269">process::subprocess</a>
 (const std::string &amp;path, std::vector&lt; std::string &gt; argv, const 
Subprocess::IO &amp;in=Subprocess::FD(<a class="el" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>),
 const Subprocess::IO &amp;out=Subprocess::FD(<a class="el" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>),
 const Subprocess::IO &amp;err=Subprocess::FD(<a class="el" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>),
 const <a class="el" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a> 
*<a class="el" href=
 "decoder_8hpp.html#abb0829cce9dd20a40ae0d86890ae85c6">flags</a>=nullptr, const 
<a class="el" href="classOption.html">Option</a>&lt; std::map&lt; std::string, 
std::string &gt;&gt; &amp;environment=<a class="el" 
href="structNone.html">None</a>(), const <a class="el" 
href="classOption.html">Option</a>&lt; lambda::function&lt; <a class="el" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(const
 lambda::function&lt; int()&gt; &amp;)&gt;&gt; &amp;clone=<a class="el" 
href="structNone.html">None</a>(), const std::vector&lt; Subprocess::ParentHook 
&gt; &amp;parent_hooks={}, const std::vector&lt; Subprocess::ChildHook &gt; 
&amp;child_hooks={}, const std::vector&lt; <a class="el" 
href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &gt; 
&amp;whitelist_fds={})</td></tr>
+<tr class="memdesc:a2d7e0a283bc0c9eca8a8b0532e026269"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Forks a subprocess and 
execs the specified 'path' with the specified 'argv', redirecting stdin, 
stdout, and stderr as specified by 'in', 'out', and 'err' respectively.  <a 
href="namespaceprocess.html#a2d7e0a283bc0c9eca8a8b0532e026269">More...</a><br 
/></td></tr>
+<tr class="separator:a2d7e0a283bc0c9eca8a8b0532e026269"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a748c548ad3a094196c98f00f9674cf"><td class="memItemLeft" 
align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; 
Subprocess &gt;&#160;</td><td class="memItemRight" valign="bottom"><a 
class="el" 
href="namespaceprocess.html#a0a748c548ad3a094196c98f00f9674cf">process::subprocess</a>
 (const std::string &amp;command, const Subprocess::IO 
&amp;in=Subprocess::FD(<a class="el" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>),
 const Subprocess::IO &amp;out=Subprocess::FD(<a class="el" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>),
 const Subprocess::IO &amp;err=Subprocess::FD(<a class="el" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>),
 const <a class="el" href="classOption.html">Option</a>&lt; std::map&lt; 
std::string, std::string &gt;&gt; &amp;environment=<a class="
 el" href="structNone.html">None</a>(), const <a class="el" 
href="classOption.html">Option</a>&lt; lambda::function&lt; <a class="el" 
href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(const
 lambda::function&lt; int()&gt; &amp;)&gt;&gt; &amp;clone=<a class="el" 
href="structNone.html">None</a>(), const std::vector&lt; Subprocess::ParentHook 
&gt; &amp;parent_hooks={}, const std::vector&lt; Subprocess::ChildHook &gt; 
&amp;child_hooks={}, const std::vector&lt; <a class="el" 
href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &gt; 
&amp;whitelist_fds={})</td></tr>
+<tr class="memdesc:a0a748c548ad3a094196c98f00f9674cf"><td 
class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" 
href="structOverload.html">Overload</a> of 'subprocess' for launching a shell 
command, i.e., 'sh -c command'.  <a 
href="namespaceprocess.html#a0a748c548ad3a094196c98f00f9674cf">More...</a><br 
/></td></tr>
+<tr class="separator:a0a748c548ad3a094196c98f00f9674cf"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html";>
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>

Reply via email to