http://git-wip-us.apache.org/repos/asf/mesos-site/blob/32a8ab49/content/api/latest/c++/index.hhp ---------------------------------------------------------------------- diff --git a/content/api/latest/c++/index.hhp b/content/api/latest/c++/index.hhp index edc0a00..d382205 100644 --- a/content/api/latest/c++/index.hhp +++ b/content/api/latest/c++/index.hhp @@ -40,8 +40,9 @@ jwt_8hpp_source.html latch_8hpp_source.html loop_8hpp_source.html counter_8hpp_source.html -gauge_8hpp_source.html metric_8hpp_source.html +pull__gauge_8hpp_source.html +push__gauge_8hpp_source.html metrics_2timer_8hpp_source.html timer_8hpp_source.html mime_8hpp_source.html @@ -749,8 +750,9 @@ jwt_8hpp.html latch_8hpp.html loop_8hpp.html counter_8hpp.html -gauge_8hpp.html metric_8hpp.html +pull__gauge_8hpp.html +push__gauge_8hpp.html metrics_2timer_8hpp.html timer_8hpp.html mime_8hpp.html @@ -3142,10 +3144,12 @@ namespaceprocess_1_1io.html namespaceprocess_1_1metrics.html classprocess_1_1metrics_1_1Counter.html classprocess_1_1metrics_1_1Counter-members.html -classprocess_1_1metrics_1_1Gauge.html -classprocess_1_1metrics_1_1Gauge-members.html classprocess_1_1metrics_1_1Metric.html classprocess_1_1metrics_1_1Metric-members.html +classprocess_1_1metrics_1_1PullGauge.html +classprocess_1_1metrics_1_1PullGauge-members.html +classprocess_1_1metrics_1_1PushGauge.html +classprocess_1_1metrics_1_1PushGauge-members.html classprocess_1_1metrics_1_1Timer.html classprocess_1_1metrics_1_1Timer-members.html namespaceprocess_1_1metrics_1_1internal.html @@ -4160,8 +4164,9 @@ classprocess_1_1internal_1_1Loop.png classprocess_1_1internal_1_1ReaperProcess.png classprocess_1_1internal_1_1ThunkProcess.png classprocess_1_1metrics_1_1Counter.png -classprocess_1_1metrics_1_1Gauge.png classprocess_1_1metrics_1_1Metric.png +classprocess_1_1metrics_1_1PullGauge.png +classprocess_1_1metrics_1_1PushGauge.png classprocess_1_1metrics_1_1Timer.png classprocess_1_1metrics_1_1internal_1_1MetricsProcess.png classprocess_1_1network_1_1Address.png
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/32a8ab49/content/api/latest/c++/metric_8hpp_source.html ---------------------------------------------------------------------- diff --git a/content/api/latest/c++/metric_8hpp_source.html b/content/api/latest/c++/metric_8hpp_source.html index 57b3625..9168f87 100644 --- a/content/api/latest/c++/metric_8hpp_source.html +++ b/content/api/latest/c++/metric_8hpp_source.html @@ -52,7 +52,7 @@ <div class="title">metric.hpp</div> </div> </div><!--header--> <div class="contents"> -<a href="metric_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 under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</sp an></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="li ne"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_METRICS_METRIC_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_METRICS_METRIC_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <atomic></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <string></span></div><div class="line"><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">#in clude <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2statistics_8hpp.html">process/statistics.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="timeseries_8hpp.html">process/timeseries.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="duration_8hpp.html">stout/duration.hpp< /a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="synchronized_8hpp.html">stout/synchronized.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess_1_1metrics_1_1internal.html#aaa37243f659788386a13de558eba70a7">metrics</a> {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// The base class for Metrics such as Counter and Gauge.</span></div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classprocess_1_1metrics_1_1Metric.html"> 33</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1metrics_1_1Metric.html">Metric</a> {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classprocess_1_1metrics_1_1Metric.html#ae63539b9d917d172350a44b26051bfef"> 35</a></span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1metrics_1_1Metric.html#ae63539b9d917d172350a44b26051bfef">~Metric</a>() {}</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"> <a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">Future<double></a> <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a961b445c5d82327db7fa387a818635c7">value</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classprocess_1_1metrics_1_1Metric.html#a5b8063ac3b08d202c2f1736661ba1950"> 39</a></span>  <span class="keyword">const</span> std::string& <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a5b8063ac3b08d202c2f1736661ba1950">name</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span cl ass="keywordflow">return</span> data->name;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  }</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="classprocess_1_1metrics_1_1Metric.html#a55529bcaedb7bb611461bf7fc2f17cb5"> 44</a></span>  <a class="code" href="classOption.html">Option<Statistics<double></a>> <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a55529bcaedb7bb611461bf7fc2f17cb5">statistics</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classOption.html">Option<Statistics<double></a>> <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a55529bcaedb7bb6 11461bf7fc2f17cb5">statistics</a> = <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">if</span> (data->history.isSome()) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">synchronized</span> (data->lock) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  statistics = <a class="code" href="structprocess_1_1Statistics.html#a4988d8015b923e2ea32048e37ba73a2c">Statistics<double>::from</a>(*data->history.get());</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>  }</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>  <span class="keywordflow">return</span> <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a55529bcaedb7bb611461bf7fc2f17cb5">statistics</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="comment">// Only derived classes can construct.</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classprocess_1_1metrics_1_1Metric.html#a2d32a61ac6c565314ec780a5939e1485"> 59</a></span>  <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a2d32a61ac6c565314ec780a5939e1485">Metric</a>(<span class="keyword">co nst</span> std::string& <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a5b8063ac3b08d202c2f1736661ba1950">name</a>, <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Duration></a>& window)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  : data(new Data(name, window)) {}</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="comment">// Inserts 'value' into the history for this metric.</span></div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classprocess_1_1metrics_1_1Metric.html#a062843ad9a1376532c176370a09e29d2"> 63</a></span>  <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a062843ad9a1376532c176370a09e29d2">push</a>(<span class="keywordtype">double</span> <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a961b445c5d82327db7fa387a818635c7">value</a>) {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">if</span> (data->history.isSome()) {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="classprocess_1_1Time.html">Time</a> now = <a class="code" href="classprocess_1_1Clock.html#a24ed3f746bb6b3ddb1c52dce5e0ecd38">Clock::now</a>();</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">synchronized</span> (data->lock) {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  data->history.get()->set(value, now);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div><div class="line "><a name="l00070"></a><span class="lineno"> 70</span>  }</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> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">struct </span>Data {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  Data(<span class="keyword">const</span> std::string& _name, <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Duration></a>& window)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  : <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a5b8063ac3b08d202c2f1736661ba1950">name</a>(_name),</div><div class="line"><a name="l00077" ></a><span class="lineno"> 77</span>  history(<a class="code" >href="structNone.html">None</a>())</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="keywordflow">if</span> (window.<a class="code" >href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>()) >{</div><div class="line"><a name="l00080"></a><span class="lineno"> >80</span>  history =</div><div class="line"><a >name="l00081"></a><span class="lineno"> 81</span>  <a >class="code" >href="classprocess_1_1Owned.html">Owned<TimeSeries<double></a>>(<span > class="keyword">new</span> <a class="code" >href="structprocess_1_1TimeSeries.html">TimeSeries<double></a>(window.<a > class="code" >href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>()));</div><div > class="line"><a name="l00082"></a><span class="lineno"> 82</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="keyword">const</span> std::string <a class="code" >href="classprocess_1_1metrics_1_1Metric.html#a5b8063ac3b08d202c2f1736661ba1950">name</a>;</div><div > class="line"><a name="l00086"></a><span class="lineno"> >86</span> </div><div class="line"><a name="l00087"></a><span >class="lineno"> 87</span>  std::atomic_flag lock = >ATOMIC_FLAG_INIT;</div><div class="line"><a name="l00088"></a><span >class="lineno"> 88</span> </div><div class="line"><a >name="l00089"></a><span class="lineno"> 89</span>  <a class="code" >href="classOption.html">Option<Owned<TimeSeries<double></a>>> > history;</div><div class="line"><a name="l00090"></a><span class="lineno"> >90</span> 60; };</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>  std::shared_ptr<Data> data;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> };</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> } <span class="comment">// namespace metrics {</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#endif // __PROCESS_METRICS_METRIC_HPP__</span></div><div class="ttc" id="synchronized_8hpp_html"><div class="ttname"><a href="synchronized_8hpp.htm l">synchronized.hpp</a></div></div> +<a href="metric_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 under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</sp an></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="li ne"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_METRICS_METRIC_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_METRICS_METRIC_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <atomic></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <string></span></div><div class="line"><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">#in clude <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2statistics_8hpp.html">process/statistics.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="timeseries_8hpp.html">process/timeseries.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="duration_8hpp.html">stout/duration.hpp< /a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="synchronized_8hpp.html">stout/synchronized.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess_1_1metrics_1_1internal.html#aaa37243f659788386a13de558eba70a7">metrics</a> {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// The base class for Metrics.</span></div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classprocess_1_1metrics_1_1Metric.html"> 33</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1metrics_1_1Metric.html">Metric</a> {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classprocess_1_1metrics_1_1Metric.html#ae63539b9d917d172350a44b26051bfef"> 35</a></span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1metrics_1_1Metric.html#ae63539b9d917d172350a44b26051bfef">~Metric</a>() {}</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">Future<double></a> <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a961b445c5d82327db7fa387a818635c7">value</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classprocess_1_1metrics_1_1Metric.html#a5b8063ac3b08d202c2f1736661ba1950"> 39</a></span>  <span class="keyword">const</span> std::string& <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a5b8063ac3b08d202c2f1736661ba1950">name</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">return</ span> data->name;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  }</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="classprocess_1_1metrics_1_1Metric.html#a55529bcaedb7bb611461bf7fc2f17cb5"> 44</a></span>  <a class="code" href="classOption.html">Option<Statistics<double></a>> <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a55529bcaedb7bb611461bf7fc2f17cb5">statistics</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classOption.html">Option<Statistics<double></a>> <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a55529bcaedb7bb611461bf7fc2f17cb5">statist ics</a> = <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">if</span> (data->history.isSome()) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">synchronized</span> (data->lock) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  statistics = <a class="code" href="structprocess_1_1Statistics.html#a4988d8015b923e2ea32048e37ba73a2c">Statistics<double>::from</a>(*data->history.get());</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>  }</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>  <span class="keywordflow">return</span> <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a55529bcaedb7bb611461bf7fc2f17cb5">statistics</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="comment">// Only derived classes can construct.</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classprocess_1_1metrics_1_1Metric.html#a2d32a61ac6c565314ec780a5939e1485"> 59</a></span>  <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a2d32a61ac6c565314ec780a5939e1485">Metric</a>(<span class="keyword">const</span> std::string& ; <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a5b8063ac3b08d202c2f1736661ba1950">name</a>, <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Duration></a>& window)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  : data(new Data(name, window)) {}</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="comment">// Inserts 'value' into the history for this metric.</span></div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classprocess_1_1metrics_1_1Metric.html#a062843ad9a1376532c176370a09e29d2"> 63</a></span>  <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a062843ad9a1376532c176370a09e29d2">push</a>(<span class="keywordtype">double</span> <a class="code" href="clas sprocess_1_1metrics_1_1Metric.html#a961b445c5d82327db7fa387a818635c7">value</a>) {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">if</span> (data->history.isSome()) {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="classprocess_1_1Time.html">Time</a> now = <a class="code" href="classprocess_1_1Clock.html#a24ed3f746bb6b3ddb1c52dce5e0ecd38">Clock::now</a>();</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">synchronized</span> (data->lock) {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  data->history.get()->set(value, now);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div><div class="line"><a name="l00070"></a><sp an class="lineno"> 70</span>  }</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> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">struct </span>Data {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  Data(<span class="keyword">const</span> std::string& _name, <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Duration></a>& window)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  : <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a5b8063ac3b08d202c2f1736661ba1950">name</a>(_name),</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  history(<a class="code" href="structNone.html">None</a>())</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="keywordflow">if</span> (window.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>()) {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  history =</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classprocess_1_1Owned.html">Owned<TimeSeries<double></a>>(<span class="keyword">new</span> <a class="code" href="structprocess_1_1TimeSeries.html">TimeSeries<double></a>(window.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>()));</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div><div c lass="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="keyword">const</span> std::string <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a5b8063ac3b08d202c2f1736661ba1950">name</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  std::atomic_flag lock = ATOMIC_FLAG_INIT;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="classOption.html">Option<Owned<TimeSeries<double></a>>> history;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  };</div><div class="l ine"><a name="l00091"></a><span class="lineno"> 91</span> </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  std::shared_ptr<Data> data;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> };</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> } <span class="comment">// namespace metrics {</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#endif // __PROCESS_METRICS_METRIC_HPP__</span></div><div class="ttc" id="synchronized_8hpp_html"><div class="ttname"><a href="synchronized_8hpp.html">synchronized.hpp</a></d iv></div> <div class="ttc" id="3rdparty_2libprocess_2include_2process_2statistics_8hpp_html"><div class="ttname"><a href="3rdparty_2libprocess_2include_2process_2statistics_8hpp.html">statistics.hpp</a></div></div> <div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option</a></div><div class="ttdef"><b>Definition:</b> option.hpp:28</div></div> <div class="ttc" id="timeseries_8hpp_html"><div class="ttname"><a href="timeseries_8hpp.html">timeseries.hpp</a></div></div> http://git-wip-us.apache.org/repos/asf/mesos-site/blob/32a8ab49/content/api/latest/c++/namespaceprocess_1_1metrics.html ---------------------------------------------------------------------- diff --git a/content/api/latest/c++/namespaceprocess_1_1metrics.html b/content/api/latest/c++/namespaceprocess_1_1metrics.html index e1958f0..cef0cfb 100644 --- a/content/api/latest/c++/namespaceprocess_1_1metrics.html +++ b/content/api/latest/c++/namespaceprocess_1_1metrics.html @@ -66,10 +66,12 @@ Namespaces</h2></td></tr> Classes</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1metrics_1_1Counter.html">Counter</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1metrics_1_1Gauge.html">Gauge</a></td></tr> -<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1metrics_1_1Metric.html">Metric</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1metrics_1_1PullGauge.html">PullGauge</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1metrics_1_1PushGauge.html">PushGauge</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1metrics_1_1Timer.html">Timer</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> http://git-wip-us.apache.org/repos/asf/mesos-site/blob/32a8ab49/content/api/latest/c++/pull__gauge_8hpp.html ---------------------------------------------------------------------- diff --git a/content/api/latest/c++/pull__gauge_8hpp.html b/content/api/latest/c++/pull__gauge_8hpp.html new file mode 100644 index 0000000..87b04fb --- /dev/null +++ b/content/api/latest/c++/pull__gauge_8hpp.html @@ -0,0 +1,85 @@ +<!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/metrics/pull_gauge.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 Page</span></a></li> + <li><a href="pages.html"><span>Related 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 List</span></a></li> + <li><a href="globals.html"><span>File 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><li class="navelem"><a class="el" href="dir_0c2042cbda9076eebbde73e7b1892dff.html">metrics</a></li> </ul> +</div> +</div><!-- top --> +<div class="header"> + <div class="summary"> +<a href="#nested-classes">Classes</a> | +<a href="#namespaces">Namespaces</a> </div> + <div class="headertitle"> +<div class="title">pull_gauge.hpp File Reference</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><code>#include <functional></code><br /> +<code>#include <memory></code><br /> +<code>#include <string></code><br /> +<code>#include <<a class="el" href="metric_8hpp_source.html">process/metrics/metric.hpp</a>></code><br /> +</div> +<p><a href="pull__gauge_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  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1metrics_1_1PullGauge.html">process::metrics::PullGauge</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </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">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html">process</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:namespaceprocess_1_1metrics"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1metrics.html">process::metrics</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +<!-- start footer part --> +<hr class="footer"/><address class="footer"><small> +Generated by  <a href="http://www.doxygen.org/index.html"> +<img class="footer" src="doxygen.png" alt="doxygen"/> +</a> 1.8.11 +</small></address> +</body> +</html> http://git-wip-us.apache.org/repos/asf/mesos-site/blob/32a8ab49/content/api/latest/c++/pull__gauge_8hpp_source.html ---------------------------------------------------------------------- diff --git a/content/api/latest/c++/pull__gauge_8hpp_source.html b/content/api/latest/c++/pull__gauge_8hpp_source.html new file mode 100644 index 0000000..2560006 --- /dev/null +++ b/content/api/latest/c++/pull__gauge_8hpp_source.html @@ -0,0 +1,75 @@ +<!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/metrics/pull_gauge.hpp Source File</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 Page</span></a></li> + <li><a href="pages.html"><span>Related 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 List</span></a></li> + <li><a href="globals.html"><span>File 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><li class="navelem"><a class="el" href="dir_0c2042cbda9076eebbde73e7b1892dff.html">metrics</a></li> </ul> +</div> +</div><!-- top --> +<div class="header"> + <div class="headertitle"> +<div class="title">pull_gauge.hpp</div> </div> +</div><!--header--> +<div class="contents"> +<a href="pull__gauge_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 under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">/ /</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div clas s="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_METRICS_PULL_GAUGE_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_METRICS_PULL_GAUGE_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <functional></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <string></span></div><div class="line"><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 <<a class="code" href="metric_8hpp.html">process/metrics/metric.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess_1_1metrics_1_1internal.html#aaa37243f659788386a13de558eba70a7">metrics</a> {</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">// A Metric that represents an instantaneous measurement of a value</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// (e.g. number of items in a queue).</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">//</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// A pull-based gauge differs from a push-based gauge in that the</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">// client does not need to worry about when to compute a new gauge</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// value and instead provides the value function to invoke during</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// metrics collection. This makes the client logic simpler but comes</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// with significant performance disadvantages. If this function</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// dispatches to a `Process`, metrics collection will be exposed to</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// delays while the dispatches work their way through the event</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// queues. Also, gauges can be expensive to compute (e.g. loop over</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// all items while counting how many match a criteria) and therefore</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">// can lead to a performance degradation on critial `Process`es</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">// during metrics collection.</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">//</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// NOTE: Due to the performance disadvantages of pull-based gauges,</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// it is recommended to use push-based gauges where possible.</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// Pull-based gauges should ideally (1) be used on `Process`es that</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// experience very light load, and (2) use functions that do not</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class ="comment">// perform heavyweight computation to compute the value (e.g. looping</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// over a large collection).</span></div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classprocess_1_1metrics_1_1PullGauge.html"> 46</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1metrics_1_1PullGauge.html">PullGauge</a> : <span class="keyword">public</span> <a class="code" href="classprocess_1_1metrics_1_1Metric.html">Metric</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="comment">// 'name' is the unique name for the instance of Gauge being constructe d.</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="comment">// It will be the key exposed in the JSON endpoint.</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="comment">//</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// 'f' is the function that is called when the Metric value is requested.</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// The user of `Gauge` must ensure that `f` is safe to execute up until</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// the removal of the `Gauge` (via `process::metrics::remove(...)`) is</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">// complete.</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classprocess_1_1metrics_1_1PullGauge.html#a223c5955fa53430f4ffefd1ef70e721c"> 56</a></span>  <a class="code" href="classprocess_1_1metrics_1_1PullGauge.html#a223c5955fa53430f4ffefd1ef70e721c">PullGauge</a>(<span class="keyword">const</span> std::string& <a class="code" href="classprocess_1_1metrics_1_1Metric.html#a5b8063ac3b08d202c2f1736661ba1950">name</a>, <span class="keyword">const</span> std::function<<a class="code" href="classprocess_1_1Future.html">Future<double></a>()>& <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  : <a class="code" href="classprocess_1_1metrics_1_1Metric.html">Metric</a>(name, <a class="code" href="structNone.html">None</a>()), data(new Data(<a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>)) {} </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classprocess_1_1metrics_1_1PullGauge.html#aa548ee805fc66627df5f486f43164458"> 59</a></span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1metrics_1_1PullGauge.html#aa548ee805fc66627df5f486f43164458">~PullGauge</a>() {}</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classprocess_1_1metrics_1_1PullGauge.html#a0e2c9dfec36e9061b476846ae8d42e68"> 61</a></span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">Future<double></a> <a class="code" href="classprocess_1_1metrics_1_1PullGauge.html#a0e2c9dfec36e9061b476846ae8d42e68">value</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</s pan> data->f(); }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">struct </span>Data</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">explicit</span> Data(<span class="keyword">const</span> std::function<<a class="code" href="classprocess_1_1Future.html">Future<double></a>()>& _f) : <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>(_f) {}</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword ">const</span> std::function<Future<double>()> <a class="code" href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">f</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  };</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  std::shared_ptr<Data> data;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> };</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> } <span class="comment">// namespace metrics {</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l 00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#endif // __PROCESS_METRICS_PULL_GAUGE_HPP__</span></div><div class="ttc" id="namespaceprocess_html_a62d5333e8ec1817c249cf83e15d568b4"><div class="ttname"><a href="namespaceprocess.html#a62d5333e8ec1817c249cf83e15d568b4">process::f</a></div><div class="ttdeci">F && f</div><div class="ttdef"><b>Definition:</b> defer.hpp:270</div></div> +<div class="ttc" id="metric_8hpp_html"><div class="ttname"><a href="metric_8hpp.html">metric.hpp</a></div></div> +<div class="ttc" id="classprocess_1_1metrics_1_1Metric_html"><div class="ttname"><a href="classprocess_1_1metrics_1_1Metric.html">process::metrics::Metric</a></div><div class="ttdef"><b>Definition:</b> metric.hpp:33</div></div> +<div class="ttc" id="classprocess_1_1metrics_1_1PullGauge_html_aa548ee805fc66627df5f486f43164458"><div class="ttname"><a href="classprocess_1_1metrics_1_1PullGauge.html#aa548ee805fc66627df5f486f43164458">process::metrics::PullGauge::~PullGauge</a></div><div class="ttdeci">virtual ~PullGauge()</div><div class="ttdef"><b>Definition:</b> pull_gauge.hpp:59</div></div> +<div class="ttc" id="classprocess_1_1metrics_1_1PullGauge_html_a223c5955fa53430f4ffefd1ef70e721c"><div class="ttname"><a href="classprocess_1_1metrics_1_1PullGauge.html#a223c5955fa53430f4ffefd1ef70e721c">process::metrics::PullGauge::PullGauge</a></div><div class="ttdeci">PullGauge(const std::string &name, const std::function< Future< double >()> &f)</div><div class="ttdef"><b>Definition:</b> pull_gauge.hpp:56</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="structNone_html"><div class="ttname"><a href="structNone.html">None</a></div><div class="ttdef"><b>Definition:</b> none.hpp:27</div></div> +<div class="ttc" id="classprocess_1_1metrics_1_1Metric_html_a5b8063ac3b08d202c2f1736661ba1950"><div class="ttname"><a href="classprocess_1_1metrics_1_1Metric.html#a5b8063ac3b08d202c2f1736661ba1950">process::metrics::Metric::name</a></div><div class="ttdeci">const std::string & name() const </div><div class="ttdef"><b>Definition:</b> metric.hpp:39</div></div> +<div class="ttc" id="namespaceprocess_html"><div class="ttname"><a href="namespaceprocess.html">process</a></div><div class="ttdef"><b>Definition:</b> executor.hpp:47</div></div> +<div class="ttc" id="namespaceprocess_1_1metrics_1_1internal_html_aaa37243f659788386a13de558eba70a7"><div class="ttname"><a href="namespaceprocess_1_1metrics_1_1internal.html#aaa37243f659788386a13de558eba70a7">process::metrics::internal::metrics</a></div><div class="ttdeci">PID< MetricsProcess > metrics</div></div> +<div class="ttc" id="classprocess_1_1metrics_1_1PullGauge_html_a0e2c9dfec36e9061b476846ae8d42e68"><div class="ttname"><a href="classprocess_1_1metrics_1_1PullGauge.html#a0e2c9dfec36e9061b476846ae8d42e68">process::metrics::PullGauge::value</a></div><div class="ttdeci">virtual Future< double > value() const </div><div class="ttdef"><b>Definition:</b> pull_gauge.hpp:61</div></div> +<div class="ttc" id="classprocess_1_1Future_html"><div class="ttname"><a href="classprocess_1_1Future.html">process::Future</a></div><div class="ttdef"><b>Definition:</b> future.hpp:57</div></div> +</div><!-- fragment --></div><!-- contents --> +<!-- start footer part --> +<hr class="footer"/><address class="footer"><small> +Generated by  <a href="http://www.doxygen.org/index.html"> +<img class="footer" src="doxygen.png" alt="doxygen"/> +</a> 1.8.11 +</small></address> +</body> +</html> http://git-wip-us.apache.org/repos/asf/mesos-site/blob/32a8ab49/content/api/latest/c++/push__gauge_8hpp.html ---------------------------------------------------------------------- diff --git a/content/api/latest/c++/push__gauge_8hpp.html b/content/api/latest/c++/push__gauge_8hpp.html new file mode 100644 index 0000000..b6f8a18 --- /dev/null +++ b/content/api/latest/c++/push__gauge_8hpp.html @@ -0,0 +1,84 @@ +<!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/metrics/push_gauge.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 Page</span></a></li> + <li><a href="pages.html"><span>Related 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 List</span></a></li> + <li><a href="globals.html"><span>File 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><li class="navelem"><a class="el" href="dir_0c2042cbda9076eebbde73e7b1892dff.html">metrics</a></li> </ul> +</div> +</div><!-- top --> +<div class="header"> + <div class="summary"> +<a href="#nested-classes">Classes</a> | +<a href="#namespaces">Namespaces</a> </div> + <div class="headertitle"> +<div class="title">push_gauge.hpp File Reference</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><code>#include <memory></code><br /> +<code>#include <string></code><br /> +<code>#include <<a class="el" href="metric_8hpp_source.html">process/metrics/metric.hpp</a>></code><br /> +</div> +<p><a href="push__gauge_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  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1metrics_1_1PushGauge.html">process::metrics::PushGauge</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </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">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html">process</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:namespaceprocess_1_1metrics"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1metrics.html">process::metrics</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +<!-- start footer part --> +<hr class="footer"/><address class="footer"><small> +Generated by  <a href="http://www.doxygen.org/index.html"> +<img class="footer" src="doxygen.png" alt="doxygen"/> +</a> 1.8.11 +</small></address> +</body> +</html>
