aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc/ref/core/html/census_8h_source.html
blob: cd0026cd0860403255ff4b35a0590fb48485133e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
<!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.6"/>
<title>GRPC Core: include/grpc/census.h 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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</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 style="padding-left: 0.5em;">
   <div id="projectname">GRPC Core
   &#160;<span id="projectnumber">0.11.0.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">census.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="census_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment">/* RPC-internal Census API&#39;s. These are designed to be generic enough that</span></div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment"> * they can (ultimately) be used in many different RPC systems (with differing</span></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="comment"> * implementations). */</span></div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#ifndef CENSUS_CENSUS_H</span></div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CENSUS_CENSUS_H</span></div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="grpc_8h.html">grpc/grpc.h</a>&gt;</span></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">/* Identify census features that can be enabled via census_initialize(). */</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8">   48</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8">census_features</a> {</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aac1986834f37851b8d899c4a08c8e3ab">   49</a></span>&#160;  <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aac1986834f37851b8d899c4a08c8e3ab">CENSUS_FEATURE_NONE</a> = 0,    <span class="comment">/* Do not enable census. */</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8ab0722326e730113d5be97f643c3e6718">   50</a></span>&#160;  <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8ab0722326e730113d5be97f643c3e6718">CENSUS_FEATURE_TRACING</a> = 1, <span class="comment">/* Enable census tracing. */</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a84c772b868e53ee3487c7bfc8e8b2f1a">   51</a></span>&#160;  <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a84c772b868e53ee3487c7bfc8e8b2f1a">CENSUS_FEATURE_STATS</a> = 2,   <span class="comment">/* Enable Census stats collection. */</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a4808bff624e2377596b86a6f58ab04b5">   52</a></span>&#160;  <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a4808bff624e2377596b86a6f58ab04b5">CENSUS_FEATURE_CPU</a> = 4,     <span class="comment">/* Enable Census CPU usage collection. */</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aba96a94fb7af8cf1144ca14edc0b1f0c">   53</a></span>&#160;  <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aba96a94fb7af8cf1144ca14edc0b1f0c">CENSUS_FEATURE_ALL</a> =</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;      <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8ab0722326e730113d5be97f643c3e6718">CENSUS_FEATURE_TRACING</a> | <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a84c772b868e53ee3487c7bfc8e8b2f1a">CENSUS_FEATURE_STATS</a> | <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a4808bff624e2377596b86a6f58ab04b5">CENSUS_FEATURE_CPU</a></div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;};</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="keywordtype">int</span> <a class="code" href="census_8h.html#a4cea92157f3de215724f6bf4aeaee1b6">census_initialize</a>(<span class="keywordtype">int</span> features);</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keywordtype">void</span> <a class="code" href="census_8h.html#aa792b067548ecdd987d560b492c83d85">census_shutdown</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="keywordtype">int</span> <a class="code" href="census_8h.html#ad5f627a64ac4febbc61d2b89801d40e9">census_supported</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="keywordtype">int</span> <a class="code" href="census_8h.html#a742616973e78aaf969389cea20feea9f">census_enabled</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="census_8h.html#a27fc8788690179599713226f1f054736">   80</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> <a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a>;</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="comment">/* This function is called by the RPC subsystem whenever it needs to get a</span></div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="comment"> * serialized form of the current census context (presumably to pass across</span></div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="comment"> * the wire). Arguments:</span></div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="comment"> * &#39;buffer&#39;: pointer to memory into which serialized context will be placed</span></div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="comment"> * &#39;buf_size&#39;: size of &#39;buffer&#39;</span></div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="comment"> * Returns: the number of bytes used in buffer if successful, or 0 if the</span></div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="comment"> * buffer is of insufficient size.</span></div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="comment"> * TODO(aveitch): determine how best to communicate required/max buffer size</span></div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="comment"> * so caller doesn&#39;t have to guess. */</span></div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="census_8h.html#ad9a7d3170ecf720e1b22a4f255605748">census_context_serialize</a>(<span class="keyword">const</span> <a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context, <span class="keywordtype">char</span> *buffer,</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                                <span class="keywordtype">size_t</span> buf_size);</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="comment">/* Distributed traces can have a number of options. */</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="census_8h.html#ad4ff7b1db813ee5318871121bb4281cc">   97</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="census_8h.html#ad4ff7b1db813ee5318871121bb4281cc">census_trace_mask_values</a> {</div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="census_8h.html#ad4ff7b1db813ee5318871121bb4281cca21afa23a531e5d54e70d44ec3c18cfb3">   98</a></span>&#160;  <a class="code" href="census_8h.html#ad4ff7b1db813ee5318871121bb4281cca21afa23a531e5d54e70d44ec3c18cfb3">CENSUS_TRACE_MASK_NONE</a> = 0,      <span class="comment">/* Default, empty flags */</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="census_8h.html#ad4ff7b1db813ee5318871121bb4281ccaadcf28b76de06181051506c96996255a">   99</a></span>&#160;  <a class="code" href="census_8h.html#ad4ff7b1db813ee5318871121bb4281ccaadcf28b76de06181051506c96996255a">CENSUS_TRACE_MASK_IS_SAMPLED</a> = 1 <span class="comment">/* RPC tracing enabled for this context. */</span></div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;};</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="keywordtype">int</span> <a class="code" href="census_8h.html#afeb62854542a09290181209ea72b9158">census_trace_mask</a>(<span class="keyword">const</span> <a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context);</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="keywordtype">void</span> <a class="code" href="census_8h.html#a2762b05c4e9bb8a6994519725cb69a84">census_set_trace_mask</a>(<span class="keywordtype">int</span> trace_mask);</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="comment">/* The concept of &quot;operation&quot; is a fundamental concept for Census. In an RPC</span></div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="comment">   system, and operation typcially represents a single RPC, or a significant</span></div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="comment">   sub-part thereof (e.g. a single logical &quot;read&quot; RPC to a distributed storage</span></div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="comment">   system might do several other actions in parallel, from looking up metadata</span></div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="comment">   indices to making requests of other services - each of these could be a</span></div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="comment">   sub-operation with the larger RPC operation). Census uses operations for the</span></div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="comment">   following:</span></div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="comment">   CPU accounting: If enabled, census will measure the thread CPU time</span></div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="comment">   consumed between operation start and end times.</span></div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment">   Active operations: Census will maintain information on all currently</span></div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="comment">   active operations.</span></div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="comment">   Distributed tracing: Each operation serves as a logical trace span.</span></div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="comment">   Stats collection: Stats are broken down by operation (e.g. latency</span></div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="comment">   breakdown for each unique RPC path).</span></div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="comment">   The following functions serve to delineate the start and stop points for</span></div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="comment">   each logical operation. */</span></div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="structcensus__timestamp.html">  135</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;  <span class="comment">/* Use gpr_timespec for default implementation. High performance</span></div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="comment">   * implementations should use a cycle-counter based timestamp. */</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="structcensus__timestamp.html#a36ed36ffcf81f720bbdade460f957004">  138</a></span>&#160;  <a class="code" href="structgpr__timespec.html">gpr_timespec</a> <a class="code" href="structcensus__timestamp.html#a36ed36ffcf81f720bbdade460f957004">ts</a>;</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;} <a class="code" href="structcensus__timestamp.html">census_timestamp</a>;</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<a class="code" href="structcensus__timestamp.html">census_timestamp</a> <a class="code" href="census_8h.html#a71b2afd7a1663c2a716af7242895442b">census_start_rpc_op_timestamp</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div>
<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="structcensus__rpc__name__info.html">  168</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="structcensus__rpc__name__info.html#a118286ec604a75b5427ba5084892f77d">  169</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> *(*get_rpc_service_name)(<a class="code" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">gpr_int64</a> id);</div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="structcensus__rpc__name__info.html#a28515ce96da75622b396a50d73b5194c">  170</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> *(*get_rpc_method_name)(<a class="code" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">gpr_int64</a> id);</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;} <a class="code" href="structcensus__rpc__name__info.html">census_rpc_name_info</a>;</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *<a class="code" href="census_8h.html#a0f2a69b151eac68f3c50806d2162d9f4">census_start_client_rpc_op</a>(</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    <span class="keyword">const</span> <a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context, <a class="code" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">gpr_int64</a> rpc_name_id,</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keyword">const</span> <a class="code" href="structcensus__rpc__name__info.html">census_rpc_name_info</a> *rpc_name_info, <span class="keyword">const</span> <span class="keywordtype">char</span> *peer, <span class="keywordtype">int</span> trace_mask,</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="keyword">const</span> <a class="code" href="structcensus__timestamp.html">census_timestamp</a> *start_time);</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="keywordtype">void</span> <a class="code" href="census_8h.html#a06407a753c261626b4e25c4f6fe0b840">census_set_rpc_client_peer</a>(<a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context, <span class="keyword">const</span> <span class="keywordtype">char</span> *peer);</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *<a class="code" href="census_8h.html#ab7014fb10de411a91588f05658148177">census_start_server_rpc_op</a>(</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *buffer, <a class="code" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">gpr_int64</a> rpc_name_id,</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    <span class="keyword">const</span> <a class="code" href="structcensus__rpc__name__info.html">census_rpc_name_info</a> *rpc_name_info, <span class="keyword">const</span> <span class="keywordtype">char</span> *peer, <span class="keywordtype">int</span> trace_mask,</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    <a class="code" href="structcensus__timestamp.html">census_timestamp</a> *start_time);</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;<a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *<a class="code" href="census_8h.html#a14287fdb8adc322c1801435eb121e642">census_start_op</a>(<a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context, <span class="keyword">const</span> <span class="keywordtype">char</span> *family,</div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;                                <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">int</span> trace_mask);</div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<span class="keywordtype">void</span> <a class="code" href="census_8h.html#a97a3300020cdacd7149e0efae9f5541e">census_end_op</a>(<a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context, <span class="keywordtype">int</span> status);</div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div>
<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="census_8h.html#acb35403ed23ba2615457fabaa0b430e7">  279</a></span>&#160;<span class="preprocessor">#define CENSUS_TRACE_RECORD_START_OP ((gpr_uint32)0)</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="census_8h.html#a003fb5bda98c95408a21d3a47571a1e9">  280</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CENSUS_TRACE_RECORD_END_OP ((gpr_uint32)1)</span></div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<span class="keywordtype">void</span> <a class="code" href="census_8h.html#af3822f36fcbca23a3af9d3e8b3fb3317">census_trace_print</a>(<a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context, <a class="code" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a> type,</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;                        <span class="keyword">const</span> <span class="keywordtype">char</span> *buffer, <span class="keywordtype">size_t</span> n);</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;</div>
<div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="structcensus__trace__record.html">  293</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="structcensus__trace__record.html#ac7f74956d51898681b8e35a8031ac9fb">  294</a></span>&#160;  <a class="code" href="structcensus__timestamp.html">census_timestamp</a> <a class="code" href="structcensus__trace__record.html#ac7f74956d51898681b8e35a8031ac9fb">timestamp</a>; <span class="comment">/* Time of record creation */</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="structcensus__trace__record.html#a7d12a98b15db3199dc221a1be036088b">  295</a></span>&#160;  <a class="code" href="port__platform_8h.html#a737bb95b7b58d90b4215602d36ed65b6">gpr_uint64</a> <a class="code" href="structcensus__trace__record.html#a7d12a98b15db3199dc221a1be036088b">trace_id</a>;        <span class="comment">/* Trace ID associated with record */</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="structcensus__trace__record.html#a9bb150a1752a810cde915432976f1839">  296</a></span>&#160;  <a class="code" href="port__platform_8h.html#a737bb95b7b58d90b4215602d36ed65b6">gpr_uint64</a> <a class="code" href="structcensus__trace__record.html#a9bb150a1752a810cde915432976f1839">op_id</a>;           <span class="comment">/* Operation ID associated with record */</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="structcensus__trace__record.html#a827fe499f3c0777ae1dcb3969943e7fc">  297</a></span>&#160;  <a class="code" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a> <a class="code" href="structcensus__trace__record.html#a827fe499f3c0777ae1dcb3969943e7fc">type</a>;            <span class="comment">/* Type (as used in census_trace_print() */</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="structcensus__trace__record.html#a4ba324fb39273bf3c0c0f15852d9d130">  298</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structcensus__trace__record.html#a4ba324fb39273bf3c0c0f15852d9d130">buffer</a>;         <span class="comment">/* Buffer (from census_trace_print() */</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="structcensus__trace__record.html#abc4f9330e28d906f90346d7fd5769d53">  299</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="structcensus__trace__record.html#abc4f9330e28d906f90346d7fd5769d53">buf_size</a>;            <span class="comment">/* Number of bytes inside buffer */</span></div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;} <a class="code" href="structcensus__trace__record.html">census_trace_record</a>;</div>
<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;</div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="keywordtype">int</span> <a class="code" href="census_8h.html#ab93305c7e6b04cd51f95aa497227f53a">census_trace_scan_start</a>(<span class="keywordtype">int</span> consume);</div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div>
<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="keywordtype">int</span> <a class="code" href="census_8h.html#a31151a1bca352d6046e6039fa864808c">census_get_trace_record</a>(<a class="code" href="structcensus__trace__record.html">census_trace_record</a> *trace_record);</div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;</div>
<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="keywordtype">void</span> <a class="code" href="census_8h.html#adee01ffd0c56ca2c8c90919a73c3f8ba">census_trace_scan_end</a>();</div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;</div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="comment">/* Max number of characters in tag key */</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="census_8h.html#aa89c96f0f32d85a1b28b68f0ef326dd4">  328</a></span>&#160;<span class="preprocessor">#define CENSUS_MAX_TAG_KEY_LENGTH 20</span></div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="preprocessor"></span><span class="comment">/* Max number of tag value characters */</span></div>
<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="census_8h.html#a22d6971ca41fd944e13e5b4c2a42bf8c">  330</a></span>&#160;<span class="preprocessor">#define CENSUS_MAX_TAG_VALUE_LENGTH 50</span></div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="comment">/* A Census tag set is a collection of key:value string pairs; these form the</span></div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="comment">   basis against which Census metrics will be recorded. Keys are unique within</span></div>
<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="comment">   a tag set. All contexts have an associated tag set. */</span></div>
<div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="census_8h.html#afc68a73849e0d1565e74c28c822bb086">  335</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="census_8h.html#afc68a73849e0d1565e74c28c822bb086">census_tag_set</a> <a class="code" href="census_8h.html#afc68a73849e0d1565e74c28c822bb086">census_tag_set</a>;</div>
<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;</div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<span class="comment">/* Returns a pointer to a newly created, empty tag set. If size_hint &gt; 0,</span></div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="comment">   indicates that the tag set is intended to hold approximately that number</span></div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="comment">   of tags. */</span></div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<a class="code" href="census_8h.html#afc68a73849e0d1565e74c28c822bb086">census_tag_set</a> *<a class="code" href="census_8h.html#a14f21902360aa221e6307cec05a110a5">census_tag_set_create</a>(<span class="keywordtype">size_t</span> size_hint);</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="comment">/* Add a new tag key/value to an existing tag set; if the tag key already exists</span></div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="comment">   in the tag set, then its value is overwritten with the new one. Can also be</span></div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="comment">   used to delete a tag, by specifying a NULL value. If key is NULL, returns</span></div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;<span class="comment">   the number of tags in the tag set.</span></div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="comment">   Return values:</span></div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="comment">   -1: invalid length key or value</span></div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;<span class="comment">   non-negative value: the number of tags in the tag set. */</span></div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<span class="keywordtype">int</span> <a class="code" href="census_8h.html#ac690af8a7c06c6fb152fc9b0b8efc142">census_tag_set_add</a>(<a class="code" href="census_8h.html#afc68a73849e0d1565e74c28c822bb086">census_tag_set</a> *tags, <span class="keyword">const</span> <span class="keywordtype">char</span> *key,</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;                       <span class="keyword">const</span> <span class="keywordtype">char</span> *value);</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;</div>
<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;<span class="comment">/* Destroys a tag set. This function must be called to prevent memory leaks.</span></div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;<span class="comment">   Once called, the tag set cannot be used again. */</span></div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;<span class="keywordtype">void</span> <a class="code" href="census_8h.html#a07ccf6250c7e2d4ef7180c510fd68ab2">census_tag_set_destroy</a>(<a class="code" href="census_8h.html#afc68a73849e0d1565e74c28c822bb086">census_tag_set</a> *tags);</div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;</div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;<span class="comment">/* Get a contexts tag set. */</span></div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;<a class="code" href="census_8h.html#afc68a73849e0d1565e74c28c822bb086">census_tag_set</a> *<a class="code" href="census_8h.html#a78ec7fa52ea54e631bb11d59a8adba33">census_context_tag_set</a>(<a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context);</div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;</div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="comment">/* A read-only representation of a tag for use by census clients. */</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="structcensus__tag__const.html">  360</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="structcensus__tag__const.html#a0da666348257edd491a26528e6bacc8f">  361</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="structcensus__tag__const.html#a0da666348257edd491a26528e6bacc8f">key_len</a>;    <span class="comment">/* Number of bytes in tag key. */</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="structcensus__tag__const.html#aaffe4ea2b11ae8cfde18e5b99c4536d2">  362</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structcensus__tag__const.html#aaffe4ea2b11ae8cfde18e5b99c4536d2">key</a>;   <span class="comment">/* A pointer to the tag key. May not be null-terminated. */</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="structcensus__tag__const.html#ac7dd97b14d839f337d34ef5c6d3f882a">  363</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="structcensus__tag__const.html#ac7dd97b14d839f337d34ef5c6d3f882a">value_len</a>;  <span class="comment">/* Number of bytes in tag value. */</span></div>
<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="structcensus__tag__const.html#a27fd204425bf861f10cd26df3dd6fb27">  364</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structcensus__tag__const.html#a27fd204425bf861f10cd26df3dd6fb27">value</a>; <span class="comment">/* Pointer to the tag value. May not be null-terminated. */</span></div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;} <a class="code" href="structcensus__tag__const.html">census_tag_const</a>;</div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;</div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="comment">/* Used to iterate through a tag sets contents. */</span></div>
<div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="census_8h.html#a22a740b7e9e3798cb9208b3bd6ea31a7">  368</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="census_8h.html#a22a740b7e9e3798cb9208b3bd6ea31a7">census_tag_set_iterator</a> <a class="code" href="census_8h.html#a22a740b7e9e3798cb9208b3bd6ea31a7">census_tag_set_iterator</a>;</div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;</div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="comment">/* Open a tag set for iteration. The tag set must not be modified while</span></div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<span class="comment">   iteration is ongoing. Returns an iterator for use in following functions. */</span></div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<a class="code" href="census_8h.html#a22a740b7e9e3798cb9208b3bd6ea31a7">census_tag_set_iterator</a> *<a class="code" href="census_8h.html#aae5c38cb581600a401d1f8dca741bf63">census_tag_set_open</a>(<a class="code" href="census_8h.html#afc68a73849e0d1565e74c28c822bb086">census_tag_set</a> *tags);</div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;</div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;<span class="comment">/* Get the next tag in the tag set, by writing into the &#39;tag&#39; argument. Returns</span></div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;<span class="comment">   1 if there is a &quot;next&quot; tag, 0 if there are no more tags. */</span></div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="keywordtype">int</span> <a class="code" href="census_8h.html#a03847b518034c5c3b801fdd95569f400">census_tag_set_next</a>(<a class="code" href="census_8h.html#a22a740b7e9e3798cb9208b3bd6ea31a7">census_tag_set_iterator</a> *it, <a class="code" href="structcensus__tag__const.html">census_tag_const</a> *tag);</div>
<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;</div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;<span class="comment">/* Close an iterator opened by census_tag_set_open(). The iterator will be</span></div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;<span class="comment">   invalidated, and should not be used once close is called. */</span></div>
<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<span class="keywordtype">void</span> <a class="code" href="census_8h.html#acbca4449a68fd3e2c17f1e0bcf1e663a">census_tag_set_close</a>(<a class="code" href="census_8h.html#a22a740b7e9e3798cb9208b3bd6ea31a7">census_tag_set_iterator</a> *it);</div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;</div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;<span class="comment">/* Core stats collection API&#39;s. The following concepts are used:</span></div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;<span class="comment">   * Aggregation: A collection of values. Census supports the following</span></div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;<span class="comment">       aggregation types:</span></div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;<span class="comment">         Sum - a single summation type. Typically used for keeping (e.g.)</span></div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;<span class="comment">           counts of events.</span></div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;<span class="comment">         Distribution - statistical distribution information, used for</span></div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;<span class="comment">           recording average, standard deviation etc.</span></div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="comment">         Histogram - a histogram of measurements falling in defined bucket</span></div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;<span class="comment">           boundaries.</span></div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;<span class="comment">         Window - a count of events that happen in reolling time window.</span></div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;<span class="comment">     New aggregation types can be added by the user, if desired (see</span></div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="comment">     census_register_aggregation()).</span></div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="comment">   * Metric: Each measurement is for a single metric. Examples include RPC</span></div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;<span class="comment">     latency, CPU seconds consumed, and bytes transmitted.</span></div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;<span class="comment">   * View: A view is a combination of a metric, a tag set (in which the tag</span></div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;<span class="comment">     values are regular expressions) and a set of aggregations. When a</span></div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;<span class="comment">     measurement for a metric matches the view tags, it is recorded (for each</span></div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;<span class="comment">     unique set of tags) against each aggregation. Each metric can have an</span></div>
<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;<span class="comment">     arbitrary number of views by which it will be broken down.</span></div>
<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;</div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="comment">/* A single value to be recorded comprises two parts: an ID for the particular</span></div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;<span class="comment"> * metric and the value to be recorded against it. */</span></div>
<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="structcensus__value.html">  405</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="structcensus__value.html#a1e644fb8e7b1d8e6b06e717f00658522">  406</a></span>&#160;  <a class="code" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a> <a class="code" href="structcensus__value.html#a1e644fb8e7b1d8e6b06e717f00658522">metric_id</a>;</div>
<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="structcensus__value.html#a5bff69239476e80fc5c54f3302fffa34">  407</a></span>&#160;  <span class="keywordtype">double</span> <a class="code" href="structcensus__value.html#a5bff69239476e80fc5c54f3302fffa34">value</a>;</div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;} <a class="code" href="structcensus__value.html">census_value</a>;</div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;</div>
<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;<span class="comment">/* Record new usage values against the given context. */</span></div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;<span class="keywordtype">void</span> <a class="code" href="census_8h.html#a1225e8bbc14ff51173b6485940940572">census_record_values</a>(<a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context, <a class="code" href="structcensus__value.html">census_value</a> *values,</div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;                          <span class="keywordtype">size_t</span> nvalues);</div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;</div>
<div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="census_8h.html#a2b2990a51808c9177b14476195a9fb94">  415</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="census_8h.html#a2b2990a51808c9177b14476195a9fb94">census_aggregation_ops</a> <a class="code" href="census_8h.html#a2b2990a51808c9177b14476195a9fb94">census_aggregation_ops</a>;</div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;<span class="comment">/* Predefined aggregation types, for use with census_view_create(). */</span></div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<span class="keyword">extern</span> <a class="code" href="census_8h.html#a2b2990a51808c9177b14476195a9fb94">census_aggregation_ops</a> <a class="code" href="census_8h.html#a35d6ca1b9557bb6e12d79e137a5df944">census_agg_sum</a>;</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;<span class="keyword">extern</span> <a class="code" href="census_8h.html#a2b2990a51808c9177b14476195a9fb94">census_aggregation_ops</a> <a class="code" href="census_8h.html#a37ac21fb6ba91fc1f80523cf3d55dbfa">census_agg_distribution</a>;</div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<span class="keyword">extern</span> <a class="code" href="census_8h.html#a2b2990a51808c9177b14476195a9fb94">census_aggregation_ops</a> <a class="code" href="census_8h.html#a22bfed34d03c9f9f061f7aaf5fc5378c">census_agg_histogram</a>;</div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;<span class="keyword">extern</span> <a class="code" href="census_8h.html#a2b2990a51808c9177b14476195a9fb94">census_aggregation_ops</a> <a class="code" href="census_8h.html#a4b8a7f096dcd85c93f823cddb2bf960e">census_agg_window</a>;</div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;</div>
<div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="structcensus__aggregation.html">  425</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="structcensus__aggregation.html#afce3bda99fdeb6c77dde6368e1c45ffa">  426</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="census_8h.html#a2b2990a51808c9177b14476195a9fb94">census_aggregation_ops</a> *<a class="code" href="structcensus__aggregation.html#afce3bda99fdeb6c77dde6368e1c45ffa">ops</a>;</div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">void</span></div>
<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="structcensus__aggregation.html#a5b2ce3ab21a88058ea67c944d6a37426">  428</a></span>&#160;      *<a class="code" href="structcensus__aggregation.html#a5b2ce3ab21a88058ea67c944d6a37426">create_arg</a>; <span class="comment">/* Argument to be used for aggregation initialization. */</span></div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;} <a class="code" href="structcensus__aggregation.html">census_aggregation</a>;</div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;</div>
<div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="census_8h.html#ae43cfb236f1c79eeefb4d9bdf91e3aed">  432</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="census_8h.html#ae43cfb236f1c79eeefb4d9bdf91e3aed">census_view</a> <a class="code" href="census_8h.html#ae43cfb236f1c79eeefb4d9bdf91e3aed">census_view</a>;</div>
<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;</div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;<a class="code" href="census_8h.html#ae43cfb236f1c79eeefb4d9bdf91e3aed">census_view</a> *<a class="code" href="census_8h.html#a3bf772ddda26227f485b375192af85f2">census_view_create</a>(<a class="code" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a> metric_id,</div>
<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;                                <span class="keyword">const</span> <a class="code" href="census_8h.html#afc68a73849e0d1565e74c28c822bb086">census_tag_set</a> *tags,</div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;                                <span class="keyword">const</span> <a class="code" href="structcensus__aggregation.html">census_aggregation</a> *aggregations,</div>
<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;                                <span class="keywordtype">size_t</span> naggregations);</div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;</div>
<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;<span class="keywordtype">void</span> <a class="code" href="census_8h.html#a529bb89984b69da3b4cab9deb68175a9">census_view_delete</a>(<a class="code" href="census_8h.html#ae43cfb236f1c79eeefb4d9bdf91e3aed">census_view</a> *view);</div>
<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;</div>
<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="census_8h.html#aa5741f85edf5b3e72f89797ae85463b0">census_view_metric</a>(<span class="keyword">const</span> <a class="code" href="census_8h.html#ae43cfb236f1c79eeefb4d9bdf91e3aed">census_view</a> *view);</div>
<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;</div>
<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="census_8h.html#ac993f47fe73f67e5f8c8f4b00c358144">census_view_naggregations</a>(<span class="keyword">const</span> <a class="code" href="census_8h.html#ae43cfb236f1c79eeefb4d9bdf91e3aed">census_view</a> *view);</div>
<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;</div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;<span class="keyword">const</span> <a class="code" href="census_8h.html#afc68a73849e0d1565e74c28c822bb086">census_tag_set</a> *<a class="code" href="census_8h.html#a054543816f063d003a36316fda4547b8">census_view_tags</a>(<span class="keyword">const</span> <a class="code" href="census_8h.html#ae43cfb236f1c79eeefb4d9bdf91e3aed">census_view</a> *view);</div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;</div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;<span class="keyword">const</span> <a class="code" href="structcensus__aggregation.html">census_aggregation</a> *<a class="code" href="census_8h.html#ab40a6a544d107b067eb5ca8326efeded">census_view_aggregrations</a>(<span class="keyword">const</span> <a class="code" href="census_8h.html#ae43cfb236f1c79eeefb4d9bdf91e3aed">census_view</a> *view);</div>
<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;</div>
<div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="structcensus__view__aggregation__data.html">  464</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="structcensus__view__aggregation__data.html#a6f41772e2252f9137b17b16ed337c370">  465</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="census_8h.html#afc68a73849e0d1565e74c28c822bb086">census_tag_set</a> *<a class="code" href="structcensus__view__aggregation__data.html#a6f41772e2252f9137b17b16ed337c370">tags</a>; <span class="comment">/* Tags for this set of aggregations. */</span></div>
<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="structcensus__view__aggregation__data.html#a9147e9464bd963144649d773fc62398d">  466</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">void</span> **<a class="code" href="structcensus__view__aggregation__data.html#a9147e9464bd963144649d773fc62398d">data</a>; <span class="comment">/* One data set for every aggregation in the view. */</span></div>
<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;} <a class="code" href="structcensus__view__aggregation__data.html">census_view_aggregation_data</a>;</div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;</div>
<div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="structcensus__view__data.html">  470</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="structcensus__view__data.html#a90105c30b6a4b32ced7663532de301f4">  471</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="structcensus__view__data.html#a90105c30b6a4b32ced7663532de301f4">n_tag_sets</a>; <span class="comment">/* Number of unique tag sets that matched view. */</span></div>
<div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="structcensus__view__data.html#ad3ad052b9c598a32650bb00690f478b8">  472</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="structcensus__view__aggregation__data.html">census_view_aggregation_data</a> *<a class="code" href="structcensus__view__data.html#ad3ad052b9c598a32650bb00690f478b8">data</a>; <span class="comment">/* n_tag_sets entries */</span></div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;} <a class="code" href="structcensus__view__data.html">census_view_data</a>;</div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;</div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="keyword">const</span> <a class="code" href="structcensus__view__data.html">census_view_data</a> *<a class="code" href="census_8h.html#ab7146edc8582fe2e6dc537f006e29cc5">census_view_get_data</a>(<span class="keyword">const</span> <a class="code" href="census_8h.html#ae43cfb236f1c79eeefb4d9bdf91e3aed">census_view</a> *view);</div>
<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;</div>
<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;<span class="keywordtype">void</span> <a class="code" href="census_8h.html#ad150387e14628665613f1d9a3d27a418">census_view_reset</a>(<a class="code" href="census_8h.html#ae43cfb236f1c79eeefb4d9bdf91e3aed">census_view</a> *view);</div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;</div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;<span class="preprocessor"></span>}</div>
<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CENSUS_CENSUS_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="structcensus__view__aggregation__data_html_a6f41772e2252f9137b17b16ed337c370"><div class="ttname"><a href="structcensus__view__aggregation__data.html#a6f41772e2252f9137b17b16ed337c370">census_view_aggregation_data::tags</a></div><div class="ttdeci">const census_tag_set * tags</div><div class="ttdef"><b>Definition:</b> census.h:465</div></div>
<div class="ttc" id="census_8h_html_a22bfed34d03c9f9f061f7aaf5fc5378c"><div class="ttname"><a href="census_8h.html#a22bfed34d03c9f9f061f7aaf5fc5378c">census_agg_histogram</a></div><div class="ttdeci">census_aggregation_ops census_agg_histogram</div></div>
<div class="ttc" id="census_8h_html_ab7146edc8582fe2e6dc537f006e29cc5"><div class="ttname"><a href="census_8h.html#ab7146edc8582fe2e6dc537f006e29cc5">census_view_get_data</a></div><div class="ttdeci">const census_view_data * census_view_get_data(const census_view *view)</div><div class="ttdoc">Get data from aggregations associated with a view. </div></div>
<div class="ttc" id="census_8h_html_a07ccf6250c7e2d4ef7180c510fd68ab2"><div class="ttname"><a href="census_8h.html#a07ccf6250c7e2d4ef7180c510fd68ab2">census_tag_set_destroy</a></div><div class="ttdeci">void census_tag_set_destroy(census_tag_set *tags)</div></div>
<div class="ttc" id="census_8h_html_a31151a1bca352d6046e6039fa864808c"><div class="ttname"><a href="census_8h.html#a31151a1bca352d6046e6039fa864808c">census_get_trace_record</a></div><div class="ttdeci">int census_get_trace_record(census_trace_record *trace_record)</div><div class="ttdoc">Get a trace record. </div></div>
<div class="ttc" id="census_8h_html_a14f21902360aa221e6307cec05a110a5"><div class="ttname"><a href="census_8h.html#a14f21902360aa221e6307cec05a110a5">census_tag_set_create</a></div><div class="ttdeci">census_tag_set * census_tag_set_create(size_t size_hint)</div></div>
<div class="ttc" id="census_8h_html_ac993f47fe73f67e5f8c8f4b00c358144"><div class="ttname"><a href="census_8h.html#ac993f47fe73f67e5f8c8f4b00c358144">census_view_naggregations</a></div><div class="ttdeci">size_t census_view_naggregations(const census_view *view)</div><div class="ttdoc">Number of aggregations associated with view. </div></div>
<div class="ttc" id="census_8h_html_aa5741f85edf5b3e72f89797ae85463b0"><div class="ttname"><a href="census_8h.html#aa5741f85edf5b3e72f89797ae85463b0">census_view_metric</a></div><div class="ttdeci">size_t census_view_metric(const census_view *view)</div><div class="ttdoc">Metric ID associated with a view. </div></div>
<div class="ttc" id="census_8h_html_a2b2990a51808c9177b14476195a9fb94"><div class="ttname"><a href="census_8h.html#a2b2990a51808c9177b14476195a9fb94">census_aggregation_ops</a></div><div class="ttdeci">struct census_aggregation_ops census_aggregation_ops</div><div class="ttdoc">Type representing a particular aggregation. </div><div class="ttdef"><b>Definition:</b> census.h:415</div></div>
<div class="ttc" id="structcensus__value_html"><div class="ttname"><a href="structcensus__value.html">census_value</a></div><div class="ttdef"><b>Definition:</b> census.h:405</div></div>
<div class="ttc" id="structcensus__value_html_a5bff69239476e80fc5c54f3302fffa34"><div class="ttname"><a href="structcensus__value.html#a5bff69239476e80fc5c54f3302fffa34">census_value::value</a></div><div class="ttdeci">double value</div><div class="ttdef"><b>Definition:</b> census.h:407</div></div>
<div class="ttc" id="census_8h_html_ae43cfb236f1c79eeefb4d9bdf91e3aed"><div class="ttname"><a href="census_8h.html#ae43cfb236f1c79eeefb4d9bdf91e3aed">census_view</a></div><div class="ttdeci">struct census_view census_view</div><div class="ttdoc">A census view type. </div><div class="ttdef"><b>Definition:</b> census.h:432</div></div>
<div class="ttc" id="census_8h_html_abe92e59c22481b0de3742673cbbb1bf8ab0722326e730113d5be97f643c3e6718"><div class="ttname"><a href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8ab0722326e730113d5be97f643c3e6718">CENSUS_FEATURE_TRACING</a></div><div class="ttdef"><b>Definition:</b> census.h:50</div></div>
<div class="ttc" id="structcensus__view__aggregation__data_html"><div class="ttname"><a href="structcensus__view__aggregation__data.html">census_view_aggregation_data</a></div><div class="ttdoc">Holds all the aggregation data for a particular view instantiation. </div><div class="ttdef"><b>Definition:</b> census.h:464</div></div>
<div class="ttc" id="structcensus__view__aggregation__data_html_a9147e9464bd963144649d773fc62398d"><div class="ttname"><a href="structcensus__view__aggregation__data.html#a9147e9464bd963144649d773fc62398d">census_view_aggregation_data::data</a></div><div class="ttdeci">const void ** data</div><div class="ttdef"><b>Definition:</b> census.h:466</div></div>
<div class="ttc" id="structcensus__view__data_html_ad3ad052b9c598a32650bb00690f478b8"><div class="ttname"><a href="structcensus__view__data.html#ad3ad052b9c598a32650bb00690f478b8">census_view_data::data</a></div><div class="ttdeci">const census_view_aggregation_data * data</div><div class="ttdef"><b>Definition:</b> census.h:472</div></div>
<div class="ttc" id="census_8h_html_a14287fdb8adc322c1801435eb121e642"><div class="ttname"><a href="census_8h.html#a14287fdb8adc322c1801435eb121e642">census_start_op</a></div><div class="ttdeci">census_context * census_start_op(census_context *context, const char *family, const char *name, int trace_mask)</div><div class="ttdoc">Start a new, non-RPC operation. </div></div>
<div class="ttc" id="census_8h_html_aae5c38cb581600a401d1f8dca741bf63"><div class="ttname"><a href="census_8h.html#aae5c38cb581600a401d1f8dca741bf63">census_tag_set_open</a></div><div class="ttdeci">census_tag_set_iterator * census_tag_set_open(census_tag_set *tags)</div></div>
<div class="ttc" id="census_8h_html_adee01ffd0c56ca2c8c90919a73c3f8ba"><div class="ttname"><a href="census_8h.html#adee01ffd0c56ca2c8c90919a73c3f8ba">census_trace_scan_end</a></div><div class="ttdeci">void census_trace_scan_end()</div><div class="ttdoc">End a scan previously started by census_trace_scan_start() </div></div>
<div class="ttc" id="structcensus__aggregation_html"><div class="ttname"><a href="structcensus__aggregation.html">census_aggregation</a></div><div class="ttdoc">Information needed to instantiate a new aggregation. </div><div class="ttdef"><b>Definition:</b> census.h:425</div></div>
<div class="ttc" id="census_8h_html_ac690af8a7c06c6fb152fc9b0b8efc142"><div class="ttname"><a href="census_8h.html#ac690af8a7c06c6fb152fc9b0b8efc142">census_tag_set_add</a></div><div class="ttdeci">int census_tag_set_add(census_tag_set *tags, const char *key, const char *value)</div></div>
<div class="ttc" id="census_8h_html_a4cea92157f3de215724f6bf4aeaee1b6"><div class="ttname"><a href="census_8h.html#a4cea92157f3de215724f6bf4aeaee1b6">census_initialize</a></div><div class="ttdeci">int census_initialize(int features)</div><div class="ttdoc">Shutdown and startup census subsystem. </div></div>
<div class="ttc" id="census_8h_html_abe92e59c22481b0de3742673cbbb1bf8a4808bff624e2377596b86a6f58ab04b5"><div class="ttname"><a href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a4808bff624e2377596b86a6f58ab04b5">CENSUS_FEATURE_CPU</a></div><div class="ttdef"><b>Definition:</b> census.h:52</div></div>
<div class="ttc" id="structcensus__trace__record_html"><div class="ttname"><a href="structcensus__trace__record.html">census_trace_record</a></div><div class="ttdoc">Trace record. </div><div class="ttdef"><b>Definition:</b> census.h:293</div></div>
<div class="ttc" id="census_8h_html_ad4ff7b1db813ee5318871121bb4281cc"><div class="ttname"><a href="census_8h.html#ad4ff7b1db813ee5318871121bb4281cc">census_trace_mask_values</a></div><div class="ttdeci">census_trace_mask_values</div><div class="ttdef"><b>Definition:</b> census.h:97</div></div>
<div class="ttc" id="census_8h_html_a71b2afd7a1663c2a716af7242895442b"><div class="ttname"><a href="census_8h.html#a71b2afd7a1663c2a716af7242895442b">census_start_rpc_op_timestamp</a></div><div class="ttdeci">census_timestamp census_start_rpc_op_timestamp(void)</div><div class="ttdoc">Mark the beginning of an RPC operation. </div></div>
<div class="ttc" id="structcensus__rpc__name__info_html"><div class="ttname"><a href="structcensus__rpc__name__info.html">census_rpc_name_info</a></div><div class="ttdoc">Represent functions to map RPC name ID to service/method names. </div><div class="ttdef"><b>Definition:</b> census.h:168</div></div>
<div class="ttc" id="census_8h_html_abe92e59c22481b0de3742673cbbb1bf8aba96a94fb7af8cf1144ca14edc0b1f0c"><div class="ttname"><a href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aba96a94fb7af8cf1144ca14edc0b1f0c">CENSUS_FEATURE_ALL</a></div><div class="ttdef"><b>Definition:</b> census.h:53</div></div>
<div class="ttc" id="census_8h_html_abe92e59c22481b0de3742673cbbb1bf8a84c772b868e53ee3487c7bfc8e8b2f1a"><div class="ttname"><a href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a84c772b868e53ee3487c7bfc8e8b2f1a">CENSUS_FEATURE_STATS</a></div><div class="ttdef"><b>Definition:</b> census.h:51</div></div>
<div class="ttc" id="port__platform_8h_html_aa6abd4df815a5498d1a04b5e691a74a9"><div class="ttname"><a href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a></div><div class="ttdeci">uint32_t gpr_uint32</div><div class="ttdef"><b>Definition:</b> port_platform.h:312</div></div>
<div class="ttc" id="census_8h_html_af3822f36fcbca23a3af9d3e8b3fb3317"><div class="ttname"><a href="census_8h.html#af3822f36fcbca23a3af9d3e8b3fb3317">census_trace_print</a></div><div class="ttdeci">void census_trace_print(census_context *context, gpr_uint32 type, const char *buffer, size_t n)</div><div class="ttdoc">Insert a trace record into the trace stream. </div></div>
<div class="ttc" id="census_8h_html_aa792b067548ecdd987d560b492c83d85"><div class="ttname"><a href="census_8h.html#aa792b067548ecdd987d560b492c83d85">census_shutdown</a></div><div class="ttdeci">void census_shutdown(void)</div></div>
<div class="ttc" id="structcensus__aggregation_html_afce3bda99fdeb6c77dde6368e1c45ffa"><div class="ttname"><a href="structcensus__aggregation.html#afce3bda99fdeb6c77dde6368e1c45ffa">census_aggregation::ops</a></div><div class="ttdeci">const census_aggregation_ops * ops</div><div class="ttdef"><b>Definition:</b> census.h:426</div></div>
<div class="ttc" id="census_8h_html_ab7014fb10de411a91588f05658148177"><div class="ttname"><a href="census_8h.html#ab7014fb10de411a91588f05658148177">census_start_server_rpc_op</a></div><div class="ttdeci">census_context * census_start_server_rpc_op(const char *buffer, gpr_int64 rpc_name_id, const census_rpc_name_info *rpc_name_info, const char *peer, int trace_mask, census_timestamp *start_time)</div><div class="ttdoc">Start a server RPC operation. </div></div>
<div class="ttc" id="census_8h_html_ab93305c7e6b04cd51f95aa497227f53a"><div class="ttname"><a href="census_8h.html#ab93305c7e6b04cd51f95aa497227f53a">census_trace_scan_start</a></div><div class="ttdeci">int census_trace_scan_start(int consume)</div><div class="ttdoc">Start a scan of existing trace records. </div></div>
<div class="ttc" id="census_8h_html_a2762b05c4e9bb8a6994519725cb69a84"><div class="ttname"><a href="census_8h.html#a2762b05c4e9bb8a6994519725cb69a84">census_set_trace_mask</a></div><div class="ttdeci">void census_set_trace_mask(int trace_mask)</div><div class="ttdoc">Set the trace mask associated with a context. </div></div>
<div class="ttc" id="census_8h_html_acbca4449a68fd3e2c17f1e0bcf1e663a"><div class="ttname"><a href="census_8h.html#acbca4449a68fd3e2c17f1e0bcf1e663a">census_tag_set_close</a></div><div class="ttdeci">void census_tag_set_close(census_tag_set_iterator *it)</div></div>
<div class="ttc" id="census_8h_html_a03847b518034c5c3b801fdd95569f400"><div class="ttname"><a href="census_8h.html#a03847b518034c5c3b801fdd95569f400">census_tag_set_next</a></div><div class="ttdeci">int census_tag_set_next(census_tag_set_iterator *it, census_tag_const *tag)</div></div>
<div class="ttc" id="census_8h_html_a529bb89984b69da3b4cab9deb68175a9"><div class="ttname"><a href="census_8h.html#a529bb89984b69da3b4cab9deb68175a9">census_view_delete</a></div><div class="ttdeci">void census_view_delete(census_view *view)</div><div class="ttdoc">Destroy a previously created view. </div></div>
<div class="ttc" id="census_8h_html_afeb62854542a09290181209ea72b9158"><div class="ttname"><a href="census_8h.html#afeb62854542a09290181209ea72b9158">census_trace_mask</a></div><div class="ttdeci">int census_trace_mask(const census_context *context)</div><div class="ttdoc">Get the current trace mask associated with this context. </div></div>
<div class="ttc" id="census_8h_html_a3bf772ddda26227f485b375192af85f2"><div class="ttname"><a href="census_8h.html#a3bf772ddda26227f485b375192af85f2">census_view_create</a></div><div class="ttdeci">census_view * census_view_create(gpr_uint32 metric_id, const census_tag_set *tags, const census_aggregation *aggregations, size_t naggregations)</div><div class="ttdoc">Create a new view. </div></div>
<div class="ttc" id="census_8h_html_ab40a6a544d107b067eb5ca8326efeded"><div class="ttname"><a href="census_8h.html#ab40a6a544d107b067eb5ca8326efeded">census_view_aggregrations</a></div><div class="ttdeci">const census_aggregation * census_view_aggregrations(const census_view *view)</div><div class="ttdoc">Get aggregation descriptors associated with a view. </div></div>
<div class="ttc" id="structcensus__view__data_html_a90105c30b6a4b32ced7663532de301f4"><div class="ttname"><a href="structcensus__view__data.html#a90105c30b6a4b32ced7663532de301f4">census_view_data::n_tag_sets</a></div><div class="ttdeci">size_t n_tag_sets</div><div class="ttdef"><b>Definition:</b> census.h:471</div></div>
<div class="ttc" id="structcensus__trace__record_html_ac7f74956d51898681b8e35a8031ac9fb"><div class="ttname"><a href="structcensus__trace__record.html#ac7f74956d51898681b8e35a8031ac9fb">census_trace_record::timestamp</a></div><div class="ttdeci">census_timestamp timestamp</div><div class="ttdef"><b>Definition:</b> census.h:294</div></div>
<div class="ttc" id="structcensus__timestamp_html_a36ed36ffcf81f720bbdade460f957004"><div class="ttname"><a href="structcensus__timestamp.html#a36ed36ffcf81f720bbdade460f957004">census_timestamp::ts</a></div><div class="ttdeci">gpr_timespec ts</div><div class="ttdef"><b>Definition:</b> census.h:138</div></div>
<div class="ttc" id="census_8h_html_a37ac21fb6ba91fc1f80523cf3d55dbfa"><div class="ttname"><a href="census_8h.html#a37ac21fb6ba91fc1f80523cf3d55dbfa">census_agg_distribution</a></div><div class="ttdeci">census_aggregation_ops census_agg_distribution</div></div>
<div class="ttc" id="port__platform_8h_html_a71edab4bc3421f129764e5cb342f7181"><div class="ttname"><a href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">gpr_int64</a></div><div class="ttdeci">int64_t gpr_int64</div><div class="ttdef"><b>Definition:</b> port_platform.h:309</div></div>
<div class="ttc" id="census_8h_html_afc68a73849e0d1565e74c28c822bb086"><div class="ttname"><a href="census_8h.html#afc68a73849e0d1565e74c28c822bb086">census_tag_set</a></div><div class="ttdeci">struct census_tag_set census_tag_set</div><div class="ttdef"><b>Definition:</b> census.h:335</div></div>
<div class="ttc" id="structcensus__timestamp_html"><div class="ttname"><a href="structcensus__timestamp.html">census_timestamp</a></div><div class="ttdoc">This structure represents a timestamp as used by census to record the time at which an operation begi...</div><div class="ttdef"><b>Definition:</b> census.h:135</div></div>
<div class="ttc" id="structcensus__tag__const_html_aaffe4ea2b11ae8cfde18e5b99c4536d2"><div class="ttname"><a href="structcensus__tag__const.html#aaffe4ea2b11ae8cfde18e5b99c4536d2">census_tag_const::key</a></div><div class="ttdeci">const char * key</div><div class="ttdef"><b>Definition:</b> census.h:362</div></div>
<div class="ttc" id="census_8h_html_ad5f627a64ac4febbc61d2b89801d40e9"><div class="ttname"><a href="census_8h.html#ad5f627a64ac4febbc61d2b89801d40e9">census_supported</a></div><div class="ttdeci">int census_supported(void)</div><div class="ttdoc">Return the features supported by the current census implementation (not all features will be availabl...</div></div>
<div class="ttc" id="census_8h_html_ad4ff7b1db813ee5318871121bb4281ccaadcf28b76de06181051506c96996255a"><div class="ttname"><a href="census_8h.html#ad4ff7b1db813ee5318871121bb4281ccaadcf28b76de06181051506c96996255a">CENSUS_TRACE_MASK_IS_SAMPLED</a></div><div class="ttdef"><b>Definition:</b> census.h:99</div></div>
<div class="ttc" id="census_8h_html_a35d6ca1b9557bb6e12d79e137a5df944"><div class="ttname"><a href="census_8h.html#a35d6ca1b9557bb6e12d79e137a5df944">census_agg_sum</a></div><div class="ttdeci">census_aggregation_ops census_agg_sum</div></div>
<div class="ttc" id="census_8h_html_a054543816f063d003a36316fda4547b8"><div class="ttname"><a href="census_8h.html#a054543816f063d003a36316fda4547b8">census_view_tags</a></div><div class="ttdeci">const census_tag_set * census_view_tags(const census_view *view)</div><div class="ttdoc">Get tags associated with view. </div></div>
<div class="ttc" id="structcensus__value_html_a1e644fb8e7b1d8e6b06e717f00658522"><div class="ttname"><a href="structcensus__value.html#a1e644fb8e7b1d8e6b06e717f00658522">census_value::metric_id</a></div><div class="ttdeci">gpr_uint32 metric_id</div><div class="ttdef"><b>Definition:</b> census.h:406</div></div>
<div class="ttc" id="census_8h_html_ad150387e14628665613f1d9a3d27a418"><div class="ttname"><a href="census_8h.html#ad150387e14628665613f1d9a3d27a418">census_view_reset</a></div><div class="ttdeci">void census_view_reset(census_view *view)</div><div class="ttdoc">Reset all view data to zero for the specified view. </div></div>
<div class="ttc" id="census_8h_html_a0f2a69b151eac68f3c50806d2162d9f4"><div class="ttname"><a href="census_8h.html#a0f2a69b151eac68f3c50806d2162d9f4">census_start_client_rpc_op</a></div><div class="ttdeci">census_context * census_start_client_rpc_op(const census_context *context, gpr_int64 rpc_name_id, const census_rpc_name_info *rpc_name_info, const char *peer, int trace_mask, const census_timestamp *start_time)</div><div class="ttdoc">Start a client rpc operation. </div></div>
<div class="ttc" id="census_8h_html_a78ec7fa52ea54e631bb11d59a8adba33"><div class="ttname"><a href="census_8h.html#a78ec7fa52ea54e631bb11d59a8adba33">census_context_tag_set</a></div><div class="ttdeci">census_tag_set * census_context_tag_set(census_context *context)</div></div>
<div class="ttc" id="structcensus__tag__const_html_a27fd204425bf861f10cd26df3dd6fb27"><div class="ttname"><a href="structcensus__tag__const.html#a27fd204425bf861f10cd26df3dd6fb27">census_tag_const::value</a></div><div class="ttdeci">const char * value</div><div class="ttdef"><b>Definition:</b> census.h:364</div></div>
<div class="ttc" id="structcensus__trace__record_html_a9bb150a1752a810cde915432976f1839"><div class="ttname"><a href="structcensus__trace__record.html#a9bb150a1752a810cde915432976f1839">census_trace_record::op_id</a></div><div class="ttdeci">gpr_uint64 op_id</div><div class="ttdef"><b>Definition:</b> census.h:296</div></div>
<div class="ttc" id="structcensus__view__data_html"><div class="ttname"><a href="structcensus__view__data.html">census_view_data</a></div><div class="ttdoc">Census view data as returned by census_view_get_data(). </div><div class="ttdef"><b>Definition:</b> census.h:470</div></div>
<div class="ttc" id="census_8h_html_abe92e59c22481b0de3742673cbbb1bf8"><div class="ttname"><a href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8">census_features</a></div><div class="ttdeci">census_features</div><div class="ttdef"><b>Definition:</b> census.h:48</div></div>
<div class="ttc" id="census_8h_html_a1225e8bbc14ff51173b6485940940572"><div class="ttname"><a href="census_8h.html#a1225e8bbc14ff51173b6485940940572">census_record_values</a></div><div class="ttdeci">void census_record_values(census_context *context, census_value *values, size_t nvalues)</div></div>
<div class="ttc" id="census_8h_html_a97a3300020cdacd7149e0efae9f5541e"><div class="ttname"><a href="census_8h.html#a97a3300020cdacd7149e0efae9f5541e">census_end_op</a></div><div class="ttdeci">void census_end_op(census_context *context, int status)</div><div class="ttdoc">End an operation started by any of the census_start_*_op*() calls. </div></div>
<div class="ttc" id="structgpr__timespec_html"><div class="ttname"><a href="structgpr__timespec.html">gpr_timespec</a></div><div class="ttdef"><b>Definition:</b> time.h:63</div></div>
<div class="ttc" id="port__platform_8h_html_a737bb95b7b58d90b4215602d36ed65b6"><div class="ttname"><a href="port__platform_8h.html#a737bb95b7b58d90b4215602d36ed65b6">gpr_uint64</a></div><div class="ttdeci">uint64_t gpr_uint64</div><div class="ttdef"><b>Definition:</b> port_platform.h:313</div></div>
<div class="ttc" id="census_8h_html_a22a740b7e9e3798cb9208b3bd6ea31a7"><div class="ttname"><a href="census_8h.html#a22a740b7e9e3798cb9208b3bd6ea31a7">census_tag_set_iterator</a></div><div class="ttdeci">struct census_tag_set_iterator census_tag_set_iterator</div><div class="ttdef"><b>Definition:</b> census.h:368</div></div>
<div class="ttc" id="structcensus__aggregation_html_a5b2ce3ab21a88058ea67c944d6a37426"><div class="ttname"><a href="structcensus__aggregation.html#a5b2ce3ab21a88058ea67c944d6a37426">census_aggregation::create_arg</a></div><div class="ttdeci">const void * create_arg</div><div class="ttdef"><b>Definition:</b> census.h:428</div></div>
<div class="ttc" id="census_8h_html_a06407a753c261626b4e25c4f6fe0b840"><div class="ttname"><a href="census_8h.html#a06407a753c261626b4e25c4f6fe0b840">census_set_rpc_client_peer</a></div><div class="ttdeci">void census_set_rpc_client_peer(census_context *context, const char *peer)</div><div class="ttdoc">Add peer information to a context representing a client RPC operation. </div></div>
<div class="ttc" id="census_8h_html_a742616973e78aaf969389cea20feea9f"><div class="ttname"><a href="census_8h.html#a742616973e78aaf969389cea20feea9f">census_enabled</a></div><div class="ttdeci">int census_enabled(void)</div><div class="ttdoc">Return the census features currently enabled. </div></div>
<div class="ttc" id="structcensus__tag__const_html_ac7dd97b14d839f337d34ef5c6d3f882a"><div class="ttname"><a href="structcensus__tag__const.html#ac7dd97b14d839f337d34ef5c6d3f882a">census_tag_const::value_len</a></div><div class="ttdeci">size_t value_len</div><div class="ttdef"><b>Definition:</b> census.h:363</div></div>
<div class="ttc" id="census_8h_html_ad4ff7b1db813ee5318871121bb4281cca21afa23a531e5d54e70d44ec3c18cfb3"><div class="ttname"><a href="census_8h.html#ad4ff7b1db813ee5318871121bb4281cca21afa23a531e5d54e70d44ec3c18cfb3">CENSUS_TRACE_MASK_NONE</a></div><div class="ttdef"><b>Definition:</b> census.h:98</div></div>
<div class="ttc" id="structcensus__trace__record_html_a4ba324fb39273bf3c0c0f15852d9d130"><div class="ttname"><a href="structcensus__trace__record.html#a4ba324fb39273bf3c0c0f15852d9d130">census_trace_record::buffer</a></div><div class="ttdeci">const char * buffer</div><div class="ttdef"><b>Definition:</b> census.h:298</div></div>
<div class="ttc" id="structcensus__trace__record_html_abc4f9330e28d906f90346d7fd5769d53"><div class="ttname"><a href="structcensus__trace__record.html#abc4f9330e28d906f90346d7fd5769d53">census_trace_record::buf_size</a></div><div class="ttdeci">size_t buf_size</div><div class="ttdef"><b>Definition:</b> census.h:299</div></div>
<div class="ttc" id="grpc_8h_html"><div class="ttname"><a href="grpc_8h.html">grpc.h</a></div></div>
<div class="ttc" id="structcensus__tag__const_html_a0da666348257edd491a26528e6bacc8f"><div class="ttname"><a href="structcensus__tag__const.html#a0da666348257edd491a26528e6bacc8f">census_tag_const::key_len</a></div><div class="ttdeci">size_t key_len</div><div class="ttdef"><b>Definition:</b> census.h:361</div></div>
<div class="ttc" id="census_8h_html_a4b8a7f096dcd85c93f823cddb2bf960e"><div class="ttname"><a href="census_8h.html#a4b8a7f096dcd85c93f823cddb2bf960e">census_agg_window</a></div><div class="ttdeci">census_aggregation_ops census_agg_window</div></div>
<div class="ttc" id="census_8h_html_ad9a7d3170ecf720e1b22a4f255605748"><div class="ttname"><a href="census_8h.html#ad9a7d3170ecf720e1b22a4f255605748">census_context_serialize</a></div><div class="ttdeci">size_t census_context_serialize(const census_context *context, char *buffer, size_t buf_size)</div></div>
<div class="ttc" id="structcensus__tag__const_html"><div class="ttname"><a href="structcensus__tag__const.html">census_tag_const</a></div><div class="ttdef"><b>Definition:</b> census.h:360</div></div>
<div class="ttc" id="structcensus__trace__record_html_a7d12a98b15db3199dc221a1be036088b"><div class="ttname"><a href="structcensus__trace__record.html#a7d12a98b15db3199dc221a1be036088b">census_trace_record::trace_id</a></div><div class="ttdeci">gpr_uint64 trace_id</div><div class="ttdef"><b>Definition:</b> census.h:295</div></div>
<div class="ttc" id="census_8h_html_a27fc8788690179599713226f1f054736"><div class="ttname"><a href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a></div><div class="ttdeci">struct census_context census_context</div><div class="ttdoc">Context is a handle used by census to represent the current tracing and tagging information. </div><div class="ttdef"><b>Definition:</b> census.h:80</div></div>
<div class="ttc" id="census_8h_html_abe92e59c22481b0de3742673cbbb1bf8aac1986834f37851b8d899c4a08c8e3ab"><div class="ttname"><a href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aac1986834f37851b8d899c4a08c8e3ab">CENSUS_FEATURE_NONE</a></div><div class="ttdef"><b>Definition:</b> census.h:49</div></div>
<div class="ttc" id="structcensus__trace__record_html_a827fe499f3c0777ae1dcb3969943e7fc"><div class="ttname"><a href="structcensus__trace__record.html#a827fe499f3c0777ae1dcb3969943e7fc">census_trace_record::type</a></div><div class="ttdeci">gpr_uint32 type</div><div class="ttdef"><b>Definition:</b> census.h:297</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Sep 3 2015 09:44:11 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>