http://git-wip-us.apache.org/repos/asf/mesos-site/blob/32a8ab49/content/api/latest/c++/gc__process_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/gc__process_8hpp_source.html
b/content/api/latest/c++/gc__process_8hpp_source.html
index 57c0491..9eeef75 100644
--- a/content/api/latest/c++/gc__process_8hpp_source.html
+++ b/content/api/latest/c++/gc__process_8hpp_source.html
@@ -52,10 +52,9 @@
<div class="title">gc_process.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="gc__process_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> <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> <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> <span class="comment">// distributed with this work for
additional information</span></div><div class="line"><a name="l00004"></a><span
class="lineno"> 4</span> <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> <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> <span class="comment">//
"License"); you may not use this file except in
compliance</span></div><div class="line"><a name="l00007"></a><span
class="lineno"> 7</span> <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> <span
class="comment">//</span></div><div class="line"><a name="l00009"></a><span
class="lineno"> 9</span> <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> <span
class="comment">//</span></div><div class="line"><a name="l00011"></a><span
class="lineno"> 11</span> <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> <span
class="comment">// distr
ibuted under the License is distributed on an "AS IS"
BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno">
13</span> <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> <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> <span class="comment">// limitations under the
License.</span></div><div class="line"><a name="l00016"></a><span
class="lineno"> 16</span> </div><div class="line"><a
name="l00017"></a><span class="lineno"> 17</span> <span
class="preprocessor">#ifndef __SLAVE_GC_PROCESS_HPP__</span></div><div
class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span
class="preprocessor">#define __SLAVE_GC_PROCESS_HPP__</span></div><div class="l
ine"><a name="l00019"></a><span class="lineno"> 19</span> </div><div
class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span
class="preprocessor">#include <list></span></div><div class="line"><a
name="l00021"></a><span class="lineno"> 21</span> <span
class="preprocessor">#include <string></span></div><div class="line"><a
name="l00022"></a><span class="lineno"> 22</span> </div><div
class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span
class="preprocessor">#include <<a class="code"
href="3rdparty_2libprocess_2include_2process_2executor_8hpp.html">process/executor.hpp</a>></span></div><div
class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span
class="preprocessor">#include <<a class="code"
href="future_8hpp.html">process/future.hpp</a>></span></div><div
class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span
class="preprocessor">#include <<a cla
ss="code" href="id_8hpp.html">process/id.hpp</a>></span></div><div
class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span
class="preprocessor">#include <<a class="code"
href="owned_8hpp.html">process/owned.hpp</a>></span></div><div
class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span
class="preprocessor">#include <<a class="code"
href="libprocess_2include_2process_2process_8hpp.html">process/process.hpp</a>></span></div><div
class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span
class="preprocessor">#include <<a class="code"
href="timeout_8hpp.html">process/timeout.hpp</a>></span></div><div
class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span
class="preprocessor">#include <<a class="code"
href="timer_8hpp.html">process/timer.hpp</a>></span></div><div
class="line"><a name="l00030"></a><span class="lineno">
30</span> </div><div class="line"><a name="l00
031"></a><span class="lineno"> 31</span> <span
class="preprocessor">#include <<a class="code"
href="counter_8hpp.html">process/metrics/counter.hpp</a>></span></div><div
class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span
class="preprocessor">#include <<a class="code"
href="gauge_8hpp.html">process/metrics/gauge.hpp</a>></span></div><div
class="line"><a name="l00033"></a><span class="lineno">
33</span> </div><div class="line"><a name="l00034"></a><span
class="lineno"> 34</span> <span class="preprocessor">#include <<a
class="code"
href="duration_8hpp.html">stout/duration.hpp</a>></span></div><div
class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span
class="preprocessor">#include <<a class="code"
href="hashmap_8hpp.html">stout/hashmap.hpp</a>></span></div><div
class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span
class="preprocessor">#include <<a class="code" hre
f="multimap_8hpp.html">stout/multimap.hpp</a>></span></div><div
class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span
class="preprocessor">#include <<a class="code"
href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div
class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span
class="preprocessor">#include <<a class="code"
href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a
name="l00039"></a><span class="lineno"> 39</span> </div><div
class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span
class="keyword">namespace </span><a class="code"
href="namespacemesos.html">mesos</a> {</div><div class="line"><a
name="l00041"></a><span class="lineno"> 41</span> <span
class="keyword">namespace </span><a class="code"
href="namespaceinternal.html">internal</a> {</div><div class="line"><a
name="l00042"></a><span class="lineno"> 42</span> <span
class="keyword">names
pace </span>slave {</div><div class="line"><a name="l00043"></a><span
class="lineno"> 43</span> </div><div class="line"><a
name="l00044"></a><span class="lineno"><a class="line"
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html">
44</a></span> <span class="keyword">class </span><a class="code"
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html">GarbageCollectorProcess</a>
:</div><div class="line"><a name="l00045"></a><span class="lineno">
45</span>  <span class="keyword">public</span> <a class="code"
href="classprocess_1_1Process.html">process::Process</a><GarbageCollectorProcess></div><div
class="line"><a name="l00046"></a><span class="lineno">
46</span> {</div><div class="line"><a name="l00047"></a><span
class="lineno"> 47</span> <span class="keyword">public</span>:</div><div
class="line"><a name="l00048"></a><span class="lineno"><a class="line"
href="classmesos_1_1internal_1_1slave_1_1GarbageCollec
torProcess.html#ae67d194bc55db9495437effd0fd7c486"> 48</a></span>  <a
class="code"
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html#ae67d194bc55db9495437effd0fd7c486">GarbageCollectorProcess</a>()</div><div
class="line"><a name="l00049"></a><span class="lineno"> 49</span>  :
<a class="code"
href="classprocess_1_1ProcessBase.html#a318038bacd95e4260864533f7cfe12fd">ProcessBase</a>(<a
class="code" href="namespaceprocess.html">process</a>::ID::<a class="code"
href="namespaceprocess_1_1ID.html#aeb11a48c9def1da169d8455a30d0ee39">generate</a>(<span
class="stringliteral">"agent-garbage-collector"</span>)),</div><div
class="line"><a name="l00050"></a><span class="lineno"> 50</span> 
metrics(this) {}</div><div class="line"><a name="l00051"></a><span
class="lineno"> 51</span> </div><div class="line"><a
name="l00052"></a><span class="lineno"> 52</span>  <span
class="keyword">virtual</span> <a class="code" href="classmes
os_1_1internal_1_1slave_1_1GarbageCollectorProcess.html#ab94d34213b83855911bd4758debc920e">~GarbageCollectorProcess</a>();</div><div
class="line"><a name="l00053"></a><span class="lineno">
53</span> </div><div class="line"><a name="l00054"></a><span
class="lineno"> 54</span>  <a class="code"
href="classprocess_1_1Future.html">process::Future<Nothing></a> <a
class="code"
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html#a529cf999737a347ed985b02f1bdffc5a">schedule</a>(</div><div
class="line"><a name="l00055"></a><span class="lineno"> 55</span> 
<span class="keyword">const</span> <a class="code"
href="classDuration.html">Duration</a>& d,</div><div class="line"><a
name="l00056"></a><span class="lineno"> 56</span>  <span
class="keyword">const</span> std::string& <a class="code"
href="namespacepath.html">path</a>);</div><div class="line"><a
name="l00057"></a><span class="lineno"> 57</span> </div><div class="li
ne"><a name="l00058"></a><span class="lineno"> 58</span>  <a
class="code" href="classprocess_1_1Future.html">process::Future<bool></a>
<a class="code"
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html#a4dcf87655efae36868aceee9477b3c0c">unschedule</a>(<span
class="keyword">const</span> std::string& path);</div><div class="line"><a
name="l00059"></a><span class="lineno"> 59</span> </div><div
class="line"><a name="l00060"></a><span class="lineno"> 60</span> 
<span class="keywordtype">void</span> <a class="code"
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html#a70df50e4c266551f3344e74a8081ff57">prune</a>(<span
class="keyword">const</span> <a class="code"
href="classDuration.html">Duration</a>& d);</div><div class="line"><a
name="l00061"></a><span class="lineno"> 61</span> </div><div
class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span
class="keyword">private</span>:</div><div c
lass="line"><a name="l00063"></a><span class="lineno"> 63</span> 
<span class="keywordtype">void</span> reset();</div><div class="line"><a
name="l00064"></a><span class="lineno"> 64</span> </div><div
class="line"><a name="l00065"></a><span class="lineno"> 65</span> 
<span class="keywordtype">void</span> <span class="keyword">remove</span>(<span
class="keyword">const</span> <a class="code"
href="classprocess_1_1Timeout.html">process::Timeout</a>&
removalTime);</div><div class="line"><a name="l00066"></a><span class="lineno">
66</span> </div><div class="line"><a name="l00067"></a><span
class="lineno"> 67</span>  <span class="keyword">struct
</span>PathInfo</div><div class="line"><a name="l00068"></a><span
class="lineno"> 68</span>  {</div><div class="line"><a
name="l00069"></a><span class="lineno"> 69</span>  PathInfo(<span
class="keyword">const</span> std::string& _path)</div><div class="line"><a
name="l00070"></a><span
class="lineno"> 70</span>  : path(_path) {}</div><div
class="line"><a name="l00071"></a><span class="lineno">
71</span> </div><div class="line"><a name="l00072"></a><span
class="lineno"> 72</span>  <span class="keywordtype">bool</span> <a
class="code"
href="namespacemesos_1_1internal_1_1slave.html#a9be31fa94f9a49c22650ce5e3a3954c0">operator==</a>(<span
class="keyword">const</span> PathInfo& that)<span class="keyword">
const</span></div><div class="line"><a name="l00073"></a><span class="lineno">
73</span> <span class="keyword"> </span>{</div><div class="line"><a
name="l00074"></a><span class="lineno"> 74</span>  <span
class="keywordflow">return</span> path == that.path;</div><div class="line"><a
name="l00075"></a><span class="lineno"> 75</span>  }</div><div
class="line"><a name="l00076"></a><span class="lineno">
76</span> </div><div class="line"><a name="l00077"></a><span
class="lineno"> 77</span>  <sp
an class="keyword">const</span> std::string path;</div><div class="line"><a
name="l00078"></a><span class="lineno"> 78</span> </div><div
class="line"><a name="l00079"></a><span class="lineno"> 79</span> 
<span class="comment">// This promise tracks the scheduled gc for the
path.</span></div><div class="line"><a name="l00080"></a><span class="lineno">
80</span>  <a class="code"
href="classprocess_1_1Promise.html">process::Promise<Nothing></a> <a
class="code"
href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>;</div><div
class="line"><a name="l00081"></a><span class="lineno">
81</span> </div><div class="line"><a name="l00082"></a><span
class="lineno"> 82</span>  <span class="keywordtype">bool</span>
removing = <span class="keyword">false</span>;</div><div class="line"><a
name="l00083"></a><span class="lineno"> 83</span>  };</div><div
class="line"><a name="l00084"></a><span cla
ss="lineno"> 84</span> </div><div class="line"><a
name="l00085"></a><span class="lineno"> 85</span>  <span
class="comment">// Callback for `remove` for bookkeeping after path
removal.</span></div><div class="line"><a name="l00086"></a><span
class="lineno"> 86</span>  <span class="keywordtype">void</span>
_remove(</div><div class="line"><a name="l00087"></a><span class="lineno">
87</span>  <span class="keyword">const</span> <a class="code"
href="classprocess_1_1Future.html">process::Future<Nothing></a>&
result,</div><div class="line"><a name="l00088"></a><span class="lineno">
88</span>  <span class="keyword">const</span> <a class="code"
href="namespacecgroups_1_1devices.html#a22494291bc2cb89697dcd2b5f288bdd3">std::list</a><<a
class="code"
href="classprocess_1_1Owned.html">process::Owned<PathInfo></a>> <a
class="code"
href="namespacerouting_1_1diagnosis_1_1socket.html#a8937277756951dcc28f2dbdbd9ea24d7">infos</a>);</d
iv><div class="line"><a name="l00089"></a><span class="lineno">
89</span> </div><div class="line"><a name="l00090"></a><span
class="lineno"> 90</span>  <span class="keyword">struct </span><a
class="code"
href="namespacemesos_1_1internal_1_1tests.html#ace210c8852d8ef1f0f67ec3af06281f6">Metrics</a></div><div
class="line"><a name="l00091"></a><span class="lineno"> 91</span> 
{</div><div class="line"><a name="l00092"></a><span class="lineno">
92</span>  <span class="keyword">explicit</span> <a class="code"
href="namespacemesos_1_1internal_1_1tests.html#ace210c8852d8ef1f0f67ec3af06281f6">Metrics</a>(<a
class="code"
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html">GarbageCollectorProcess</a>
*gc);</div><div class="line"><a name="l00093"></a><span class="lineno">
93</span>  ~<a class="code"
href="namespacemesos_1_1internal_1_1tests.html#ace210c8852d8ef1f0f67ec3af06281f6">Metrics</a>();</div><div
class="line"><a name="l00094">
</a><span class="lineno"> 94</span> </div><div class="line"><a
name="l00095"></a><span class="lineno"> 95</span>  <a class="code"
href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a>
path_removals_succeeded;</div><div class="line"><a name="l00096"></a><span
class="lineno"> 96</span>  <a class="code"
href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a>
path_removals_failed;</div><div class="line"><a name="l00097"></a><span
class="lineno"> 97</span>  <a class="code"
href="classprocess_1_1metrics_1_1Gauge.html">process::metrics::Gauge</a>
path_removals_pending;</div><div class="line"><a name="l00098"></a><span
class="lineno"> 98</span>  } metrics;</div><div class="line"><a
name="l00099"></a><span class="lineno"> 99</span> </div><div
class="line"><a name="l00100"></a><span class="lineno"> 100</span> 
<span class="comment">// Store all the timeouts and corresponding paths to
delete.
</span></div><div class="line"><a name="l00101"></a><span class="lineno">
101</span>  <span class="comment">// NOTE: We are using Multimap here
instead of Multihashmap, because</span></div><div class="line"><a
name="l00102"></a><span class="lineno"> 102</span>  <span
class="comment">// we need the keys of the map (deletion time) to be
sorted.</span></div><div class="line"><a name="l00103"></a><span
class="lineno"> 103</span>  <a class="code"
href="classMultimap.html">Multimap<process::Timeout,
process::Owned<PathInfo></a>> paths;</div><div class="line"><a
name="l00104"></a><span class="lineno"> 104</span> </div><div
class="line"><a name="l00105"></a><span class="lineno"> 105</span> 
<span class="comment">// We also need efficient lookup for a path, to determine
whether</span></div><div class="line"><a name="l00106"></a><span
class="lineno"> 106</span>  <span class="comment">// it exists in our
paths mapping.</span></div><div class
="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a
class="code" href="classhashmap.html">hashmap<std::string,
process::Timeout></a> timeouts;</div><div class="line"><a
name="l00108"></a><span class="lineno"> 108</span> </div><div
class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a
class="code" href="classprocess_1_1Timer.html">process::Timer</a>
timer;</div><div class="line"><a name="l00110"></a><span class="lineno">
110</span> </div><div class="line"><a name="l00111"></a><span
class="lineno"> 111</span>  <span class="comment">// For executing path
removals in a separate actor.</span></div><div class="line"><a
name="l00112"></a><span class="lineno"> 112</span>  <a class="code"
href="classprocess_1_1Executor.html">process::Executor</a> executor;</div><div
class="line"><a name="l00113"></a><span class="lineno">
113</span> };</div><div class="line"><a name="l00114"></a><span
class="lineno"> 114</span
> </div><div class="line"><a name="l00115"></a><span class="lineno">
>115</span> } <span class="comment">// namespace slave {</span></div><div
>class="line"><a name="l00116"></a><span class="lineno"> 116</span> }
><span class="comment">// namespace internal {</span></div><div
>class="line"><a name="l00117"></a><span class="lineno"> 117</span> }
><span class="comment">// namespace mesos {</span></div><div class="line"><a
>name="l00118"></a><span class="lineno"> 118</span> </div><div
>class="line"><a name="l00119"></a><span class="lineno">
>119</span> <span class="preprocessor">#endif //
>__SLAVE_GC_PROCESS_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="gc__process_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> <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> <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> <span class="comment">// distributed with this work for
additional information</span></div><div class="line"><a name="l00004"></a><span
class="lineno"> 4</span> <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> <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> <span class="comment">//
"License"); you may not use this file except in
compliance</span></div><div class="line"><a name="l00007"></a><span
class="lineno"> 7</span> <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> <span
class="comment">//</span></div><div class="line"><a name="l00009"></a><span
class="lineno"> 9</span> <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> <span
class="comment">//</span></div><div class="line"><a name="l00011"></a><span
class="lineno"> 11</span> <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> <span
class="comment">// distr
ibuted under the License is distributed on an "AS IS"
BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno">
13</span> <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> <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> <span class="comment">// limitations under the
License.</span></div><div class="line"><a name="l00016"></a><span
class="lineno"> 16</span> </div><div class="line"><a
name="l00017"></a><span class="lineno"> 17</span> <span
class="preprocessor">#ifndef __SLAVE_GC_PROCESS_HPP__</span></div><div
class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span
class="preprocessor">#define __SLAVE_GC_PROCESS_HPP__</span></div><div class="l
ine"><a name="l00019"></a><span class="lineno"> 19</span> </div><div
class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span
class="preprocessor">#include <list></span></div><div class="line"><a
name="l00021"></a><span class="lineno"> 21</span> <span
class="preprocessor">#include <string></span></div><div class="line"><a
name="l00022"></a><span class="lineno"> 22</span> </div><div
class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span
class="preprocessor">#include <<a class="code"
href="3rdparty_2libprocess_2include_2process_2executor_8hpp.html">process/executor.hpp</a>></span></div><div
class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span
class="preprocessor">#include <<a class="code"
href="future_8hpp.html">process/future.hpp</a>></span></div><div
class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span
class="preprocessor">#include <<a cla
ss="code" href="id_8hpp.html">process/id.hpp</a>></span></div><div
class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span
class="preprocessor">#include <<a class="code"
href="owned_8hpp.html">process/owned.hpp</a>></span></div><div
class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span
class="preprocessor">#include <<a class="code"
href="libprocess_2include_2process_2process_8hpp.html">process/process.hpp</a>></span></div><div
class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span
class="preprocessor">#include <<a class="code"
href="timeout_8hpp.html">process/timeout.hpp</a>></span></div><div
class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span
class="preprocessor">#include <<a class="code"
href="timer_8hpp.html">process/timer.hpp</a>></span></div><div
class="line"><a name="l00030"></a><span class="lineno">
30</span> </div><div class="line"><a name="l00
031"></a><span class="lineno"> 31</span> <span
class="preprocessor">#include <<a class="code"
href="counter_8hpp.html">process/metrics/counter.hpp</a>></span></div><div
class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span
class="preprocessor">#include <<a class="code"
href="pull__gauge_8hpp.html">process/metrics/pull_gauge.hpp</a>></span></div><div
class="line"><a name="l00033"></a><span class="lineno">
33</span> </div><div class="line"><a name="l00034"></a><span
class="lineno"> 34</span> <span class="preprocessor">#include <<a
class="code"
href="duration_8hpp.html">stout/duration.hpp</a>></span></div><div
class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span
class="preprocessor">#include <<a class="code"
href="hashmap_8hpp.html">stout/hashmap.hpp</a>></span></div><div
class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span
class="preprocessor">#include <<a class
="code" href="multimap_8hpp.html">stout/multimap.hpp</a>></span></div><div
class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span
class="preprocessor">#include <<a class="code"
href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div
class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span
class="preprocessor">#include <<a class="code"
href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a
name="l00039"></a><span class="lineno"> 39</span> </div><div
class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span
class="keyword">namespace </span><a class="code"
href="namespacemesos.html">mesos</a> {</div><div class="line"><a
name="l00041"></a><span class="lineno"> 41</span> <span
class="keyword">namespace </span><a class="code"
href="namespaceinternal.html">internal</a> {</div><div class="line"><a
name="l00042"></a><span class="lineno"> 42</span> <span class="key
word">namespace </span>slave {</div><div class="line"><a
name="l00043"></a><span class="lineno"> 43</span> </div><div
class="line"><a name="l00044"></a><span class="lineno"><a class="line"
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html">
44</a></span> <span class="keyword">class </span><a class="code"
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html">GarbageCollectorProcess</a>
:</div><div class="line"><a name="l00045"></a><span class="lineno">
45</span>  <span class="keyword">public</span> <a class="code"
href="classprocess_1_1Process.html">process::Process</a><GarbageCollectorProcess></div><div
class="line"><a name="l00046"></a><span class="lineno">
46</span> {</div><div class="line"><a name="l00047"></a><span
class="lineno"> 47</span> <span class="keyword">public</span>:</div><div
class="line"><a name="l00048"></a><span class="lineno"><a class="line"
href="classmesos_1_1internal_1_1slave_1_1Ga
rbageCollectorProcess.html#ae67d194bc55db9495437effd0fd7c486">
48</a></span>  <a class="code"
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html#ae67d194bc55db9495437effd0fd7c486">GarbageCollectorProcess</a>()</div><div
class="line"><a name="l00049"></a><span class="lineno"> 49</span>  :
<a class="code"
href="classprocess_1_1ProcessBase.html#a318038bacd95e4260864533f7cfe12fd">ProcessBase</a>(<a
class="code" href="namespaceprocess.html">process</a>::ID::<a class="code"
href="namespaceprocess_1_1ID.html#aeb11a48c9def1da169d8455a30d0ee39">generate</a>(<span
class="stringliteral">"agent-garbage-collector"</span>)),</div><div
class="line"><a name="l00050"></a><span class="lineno"> 50</span> 
metrics(this) {}</div><div class="line"><a name="l00051"></a><span
class="lineno"> 51</span> </div><div class="line"><a
name="l00052"></a><span class="lineno"> 52</span>  <span
class="keyword">virtual</span> <a class="code" hre
f="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html#ab94d34213b83855911bd4758debc920e">~GarbageCollectorProcess</a>();</div><div
class="line"><a name="l00053"></a><span class="lineno">
53</span> </div><div class="line"><a name="l00054"></a><span
class="lineno"> 54</span>  <a class="code"
href="classprocess_1_1Future.html">process::Future<Nothing></a> <a
class="code"
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html#a529cf999737a347ed985b02f1bdffc5a">schedule</a>(</div><div
class="line"><a name="l00055"></a><span class="lineno"> 55</span> 
<span class="keyword">const</span> <a class="code"
href="classDuration.html">Duration</a>& d,</div><div class="line"><a
name="l00056"></a><span class="lineno"> 56</span>  <span
class="keyword">const</span> std::string& <a class="code"
href="namespacepath.html">path</a>);</div><div class="line"><a
name="l00057"></a><span class="lineno"> 57</span> </div><di
v class="line"><a name="l00058"></a><span class="lineno"> 58</span> 
<a class="code"
href="classprocess_1_1Future.html">process::Future<bool></a> <a
class="code"
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html#a4dcf87655efae36868aceee9477b3c0c">unschedule</a>(<span
class="keyword">const</span> std::string& path);</div><div class="line"><a
name="l00059"></a><span class="lineno"> 59</span> </div><div
class="line"><a name="l00060"></a><span class="lineno"> 60</span> 
<span class="keywordtype">void</span> <a class="code"
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html#a70df50e4c266551f3344e74a8081ff57">prune</a>(<span
class="keyword">const</span> <a class="code"
href="classDuration.html">Duration</a>& d);</div><div class="line"><a
name="l00061"></a><span class="lineno"> 61</span> </div><div
class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span
class="keyword">private</span>:<
/div><div class="line"><a name="l00063"></a><span class="lineno">
63</span>  <span class="keywordtype">void</span> reset();</div><div
class="line"><a name="l00064"></a><span class="lineno">
64</span> </div><div class="line"><a name="l00065"></a><span
class="lineno"> 65</span>  <span class="keywordtype">void</span> <span
class="keyword">remove</span>(<span class="keyword">const</span> <a
class="code" href="classprocess_1_1Timeout.html">process::Timeout</a>&
removalTime);</div><div class="line"><a name="l00066"></a><span class="lineno">
66</span> </div><div class="line"><a name="l00067"></a><span
class="lineno"> 67</span>  <span class="keyword">struct
</span>PathInfo</div><div class="line"><a name="l00068"></a><span
class="lineno"> 68</span>  {</div><div class="line"><a
name="l00069"></a><span class="lineno"> 69</span>  PathInfo(<span
class="keyword">const</span> std::string& _path)</div><div class="line"><a
name="l00070"
></a><span class="lineno"> 70</span>  : path(_path) {}</div><div
>class="line"><a name="l00071"></a><span class="lineno">
>71</span> </div><div class="line"><a name="l00072"></a><span
>class="lineno"> 72</span>  <span class="keywordtype">bool</span> <a
>class="code"
>href="namespacemesos_1_1internal_1_1slave.html#a9be31fa94f9a49c22650ce5e3a3954c0">operator==</a>(<span
> class="keyword">const</span> PathInfo& that)<span class="keyword">
>const</span></div><div class="line"><a name="l00073"></a><span
>class="lineno"> 73</span> <span class="keyword"> </span>{</div><div
>class="line"><a name="l00074"></a><span class="lineno"> 74</span> 
> <span class="keywordflow">return</span> path == that.path;</div><div
>class="line"><a name="l00075"></a><span class="lineno"> 75</span> 
>}</div><div class="line"><a name="l00076"></a><span class="lineno">
>76</span> </div><div class="line"><a name="l00077"></a><span
>class="lineno"> 77</span>&#
160; <span class="keyword">const</span> std::string path;</div><div
class="line"><a name="l00078"></a><span class="lineno">
78</span> </div><div class="line"><a name="l00079"></a><span
class="lineno"> 79</span>  <span class="comment">// This promise
tracks the scheduled gc for the path.</span></div><div class="line"><a
name="l00080"></a><span class="lineno"> 80</span>  <a class="code"
href="classprocess_1_1Promise.html">process::Promise<Nothing></a> <a
class="code"
href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>;</div><div
class="line"><a name="l00081"></a><span class="lineno">
81</span> </div><div class="line"><a name="l00082"></a><span
class="lineno"> 82</span>  <span class="keywordtype">bool</span>
removing = <span class="keyword">false</span>;</div><div class="line"><a
name="l00083"></a><span class="lineno"> 83</span>  };</div><div
class="line"><a name="l00084"></
a><span class="lineno"> 84</span> </div><div class="line"><a
name="l00085"></a><span class="lineno"> 85</span>  <span
class="comment">// Callback for `remove` for bookkeeping after path
removal.</span></div><div class="line"><a name="l00086"></a><span
class="lineno"> 86</span>  <span class="keywordtype">void</span>
_remove(</div><div class="line"><a name="l00087"></a><span class="lineno">
87</span>  <span class="keyword">const</span> <a class="code"
href="classprocess_1_1Future.html">process::Future<Nothing></a>&
result,</div><div class="line"><a name="l00088"></a><span class="lineno">
88</span>  <span class="keyword">const</span> <a class="code"
href="namespacecgroups_1_1devices.html#a22494291bc2cb89697dcd2b5f288bdd3">std::list</a><<a
class="code"
href="classprocess_1_1Owned.html">process::Owned<PathInfo></a>> <a
class="code"
href="namespacerouting_1_1diagnosis_1_1socket.html#a8937277756951dcc28f2dbdbd9ea24d7">inf
os</a>);</div><div class="line"><a name="l00089"></a><span class="lineno">
89</span> </div><div class="line"><a name="l00090"></a><span
class="lineno"> 90</span>  <span class="keyword">struct </span><a
class="code"
href="namespacemesos_1_1internal_1_1tests.html#ace210c8852d8ef1f0f67ec3af06281f6">Metrics</a></div><div
class="line"><a name="l00091"></a><span class="lineno"> 91</span> 
{</div><div class="line"><a name="l00092"></a><span class="lineno">
92</span>  <span class="keyword">explicit</span> <a class="code"
href="namespacemesos_1_1internal_1_1tests.html#ace210c8852d8ef1f0f67ec3af06281f6">Metrics</a>(<a
class="code"
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html">GarbageCollectorProcess</a>
*gc);</div><div class="line"><a name="l00093"></a><span class="lineno">
93</span>  ~<a class="code"
href="namespacemesos_1_1internal_1_1tests.html#ace210c8852d8ef1f0f67ec3af06281f6">Metrics</a>();</div><div
class="line"><a nam
e="l00094"></a><span class="lineno"> 94</span> </div><div
class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a
class="code"
href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a>
path_removals_succeeded;</div><div class="line"><a name="l00096"></a><span
class="lineno"> 96</span>  <a class="code"
href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a>
path_removals_failed;</div><div class="line"><a name="l00097"></a><span
class="lineno"> 97</span>  <a class="code"
href="classprocess_1_1metrics_1_1PullGauge.html">process::metrics::PullGauge</a>
path_removals_pending;</div><div class="line"><a name="l00098"></a><span
class="lineno"> 98</span>  } metrics;</div><div class="line"><a
name="l00099"></a><span class="lineno"> 99</span> </div><div
class="line"><a name="l00100"></a><span class="lineno"> 100</span> 
<span class="comment">// Store all the timeouts and correspondi
ng paths to delete.</span></div><div class="line"><a name="l00101"></a><span
class="lineno"> 101</span>  <span class="comment">// NOTE: We are using
Multimap here instead of Multihashmap, because</span></div><div class="line"><a
name="l00102"></a><span class="lineno"> 102</span>  <span
class="comment">// we need the keys of the map (deletion time) to be
sorted.</span></div><div class="line"><a name="l00103"></a><span
class="lineno"> 103</span>  <a class="code"
href="classMultimap.html">Multimap<process::Timeout,
process::Owned<PathInfo></a>> paths;</div><div class="line"><a
name="l00104"></a><span class="lineno"> 104</span> </div><div
class="line"><a name="l00105"></a><span class="lineno"> 105</span> 
<span class="comment">// We also need efficient lookup for a path, to determine
whether</span></div><div class="line"><a name="l00106"></a><span
class="lineno"> 106</span>  <span class="comment">// it exists in our
paths mapping.</sp
an></div><div class="line"><a name="l00107"></a><span class="lineno">
107</span>  <a class="code"
href="classhashmap.html">hashmap<std::string, process::Timeout></a>
timeouts;</div><div class="line"><a name="l00108"></a><span class="lineno">
108</span> </div><div class="line"><a name="l00109"></a><span
class="lineno"> 109</span>  <a class="code"
href="classprocess_1_1Timer.html">process::Timer</a> timer;</div><div
class="line"><a name="l00110"></a><span class="lineno">
110</span> </div><div class="line"><a name="l00111"></a><span
class="lineno"> 111</span>  <span class="comment">// For executing path
removals in a separate actor.</span></div><div class="line"><a
name="l00112"></a><span class="lineno"> 112</span>  <a class="code"
href="classprocess_1_1Executor.html">process::Executor</a> executor;</div><div
class="line"><a name="l00113"></a><span class="lineno">
113</span> };</div><div class="line"><a name="l00114"></a><span class="
lineno"> 114</span> </div><div class="line"><a name="l00115"></a><span
class="lineno"> 115</span> } <span class="comment">// namespace slave
{</span></div><div class="line"><a name="l00116"></a><span class="lineno">
116</span> } <span class="comment">// namespace internal
{</span></div><div class="line"><a name="l00117"></a><span class="lineno">
117</span> } <span class="comment">// namespace mesos {</span></div><div
class="line"><a name="l00118"></a><span class="lineno">
118</span> </div><div class="line"><a name="l00119"></a><span
class="lineno"> 119</span> <span class="preprocessor">#endif //
__SLAVE_GC_PROCESS_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="namespaceprocess_1_1ID_html_aeb11a48c9def1da169d8455a30d0ee39"><div
class="ttname"><a
href="namespaceprocess_1_1ID.html#aeb11a48c9def1da169d8455a30d0ee39">process::ID::generate</a></div><div
class="ttdeci">std::string generate(const std::string
&prefix="")</div><div class="ttdoc">Returns
&#39;prefix(N)&#39; where N represents the number of instances where
the same prefix (wrt...</div></div>
<div class="ttc"
id="namespacemesos_1_1internal_1_1slave_html_a9be31fa94f9a49c22650ce5e3a3954c0"><div
class="ttname"><a
href="namespacemesos_1_1internal_1_1slave.html#a9be31fa94f9a49c22650ce5e3a3954c0">mesos::internal::slave::operator==</a></div><div
class="ttdeci">bool operator==(const DockerVolume &left, const
DockerVolume &right)</div><div class="ttdef"><b>Definition:</b>
state.hpp:29</div></div>
-<div class="ttc" id="gauge_8hpp_html"><div class="ttname"><a
href="gauge_8hpp.html">gauge.hpp</a></div></div>
<div class="ttc"
id="classprocess_1_1ProcessBase_html_a318038bacd95e4260864533f7cfe12fd"><div
class="ttname"><a
href="classprocess_1_1ProcessBase.html#a318038bacd95e4260864533f7cfe12fd">process::ProcessBase::ProcessBase</a></div><div
class="ttdeci">ProcessBase(const std::string &id="")</div></div>
<div class="ttc" id="timeout_8hpp_html"><div class="ttname"><a
href="timeout_8hpp.html">timeout.hpp</a></div></div>
<div class="ttc"
id="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess_html_ab94d34213b83855911bd4758debc920e"><div
class="ttname"><a
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html#ab94d34213b83855911bd4758debc920e">mesos::internal::slave::GarbageCollectorProcess::~GarbageCollectorProcess</a></div><div
class="ttdeci">virtual ~GarbageCollectorProcess()</div></div>
@@ -66,8 +65,8 @@
<div class="ttc"
id="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess_html_a70df50e4c266551f3344e74a8081ff57"><div
class="ttname"><a
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html#a70df50e4c266551f3344e74a8081ff57">mesos::internal::slave::GarbageCollectorProcess::prune</a></div><div
class="ttdeci">void prune(const Duration &d)</div></div>
<div class="ttc" id="classhashmap_html"><div class="ttname"><a
href="classhashmap.html">hashmap< std::string, process::Timeout
></a></div></div>
<div class="ttc" id="duration_8hpp_html"><div class="ttname"><a
href="duration_8hpp.html">duration.hpp</a></div></div>
-<div class="ttc" id="classprocess_1_1metrics_1_1Gauge_html"><div
class="ttname"><a
href="classprocess_1_1metrics_1_1Gauge.html">process::metrics::Gauge</a></div><div
class="ttdef"><b>Definition:</b> gauge.hpp:27</div></div>
<div class="ttc"
id="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess_html"><div
class="ttname"><a
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html">mesos::internal::slave::GarbageCollectorProcess</a></div><div
class="ttdef"><b>Definition:</b> gc_process.hpp:44</div></div>
+<div class="ttc" id="classprocess_1_1metrics_1_1PullGauge_html"><div
class="ttname"><a
href="classprocess_1_1metrics_1_1PullGauge.html">process::metrics::PullGauge</a></div><div
class="ttdef"><b>Definition:</b> pull_gauge.hpp:46</div></div>
<div class="ttc" id="nothing_8hpp_html"><div class="ttname"><a
href="nothing_8hpp.html">nothing.hpp</a></div></div>
<div class="ttc" id="counter_8hpp_html"><div class="ttname"><a
href="counter_8hpp.html">counter.hpp</a></div></div>
<div class="ttc"
id="namespacerouting_1_1diagnosis_1_1socket_html_a8937277756951dcc28f2dbdbd9ea24d7"><div
class="ttname"><a
href="namespacerouting_1_1diagnosis_1_1socket.html#a8937277756951dcc28f2dbdbd9ea24d7">routing::diagnosis::socket::infos</a></div><div
class="ttdeci">Try< std::vector< Info > > infos(int familiy, int
states)</div></div>
@@ -77,6 +76,7 @@
<div class="ttc" id="classMultimap_html"><div class="ttname"><a
href="classMultimap.html">Multimap</a></div><div
class="ttdef"><b>Definition:</b> multimap.hpp:30</div></div>
<div class="ttc"
id="namespacecgroups_1_1devices_html_a22494291bc2cb89697dcd2b5f288bdd3"><div
class="ttname"><a
href="namespacecgroups_1_1devices.html#a22494291bc2cb89697dcd2b5f288bdd3">cgroups::devices::list</a></div><div
class="ttdeci">Try< std::vector< Entry > > list(const std::string
&hierarchy, const std::string &cgroup)</div></div>
<div class="ttc" id="future_8hpp_html"><div class="ttname"><a
href="future_8hpp.html">future.hpp</a></div></div>
+<div class="ttc" id="pull__gauge_8hpp_html"><div class="ttname"><a
href="pull__gauge_8hpp.html">pull_gauge.hpp</a></div></div>
<div class="ttc"
id="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess_html_a529cf999737a347ed985b02f1bdffc5a"><div
class="ttname"><a
href="classmesos_1_1internal_1_1slave_1_1GarbageCollectorProcess.html#a529cf999737a347ed985b02f1bdffc5a">mesos::internal::slave::GarbageCollectorProcess::schedule</a></div><div
class="ttdeci">process::Future< Nothing > schedule(const Duration
&d, const std::string &path)</div></div>
<div class="ttc" id="namespaceinternal_html"><div class="ttname"><a
href="namespaceinternal.html">internal</a></div><div
class="ttdef"><b>Definition:</b> attributes.hpp:24</div></div>
<div class="ttc" id="timer_8hpp_html"><div class="ttname"><a
href="timer_8hpp.html">timer.hpp</a></div></div>