summaryrefslogtreecommitdiff
path: root/yajl-1.0.12/structyajl__callbacks.html
blob: dba41b90230eeb7531ff503bd13419c6f2313483 (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
<!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"/>
<title>YAJL: yajl_callbacks Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">YAJL&#160;<span id="projectnumber">1.0.12</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-attribs">Data Fields</a>  </div>
  <div class="headertitle">
<div class="title">yajl_callbacks Struct Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="yajl_callbacks" -->
<p><code>#include &lt;<a class="el" href="yajl__parse_8h_source.html">yajl_parse.h</a>&gt;</code></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyajl__callbacks.html#a119925fa35d01fd556faa502397a6eb8">yajl_null</a> )(void *ctx)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyajl__callbacks.html#a9e4e6a69c6e88dbb1db692cc51fdcb85">yajl_boolean</a> )(void *ctx, int boolVal)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyajl__callbacks.html#a929c2dc82d37b48fc03ce20f22d40769">yajl_integer</a> )(void *ctx, long integerVal)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyajl__callbacks.html#a6e4b6fc64ddb2707950eb811304d1c46">yajl_double</a> )(void *ctx, double doubleVal)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyajl__callbacks.html#a485231e16d8cfc35efef17dfe2da2964">yajl_number</a> )(void *ctx, const char *numberVal, unsigned int numberLen)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyajl__callbacks.html#a401e63b822dccecc78dc548a5a35cff1">yajl_string</a> )(void *ctx, const unsigned char *stringVal, unsigned int stringLen)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyajl__callbacks.html#a9da6fafbc2069780a02710778e61462e">yajl_start_map</a> )(void *ctx)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyajl__callbacks.html#ae0c22a317a89a4d2bcb71a45673b28c9">yajl_map_key</a> )(void *ctx, const unsigned char *key, unsigned int stringLen)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyajl__callbacks.html#aff8abd4229027390adf59afcbb4e0f42">yajl_end_map</a> )(void *ctx)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyajl__callbacks.html#aaf4cf875e2a6e1ab1a8af94d16f60083">yajl_start_array</a> )(void *ctx)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structyajl__callbacks.html#a4671213ae60fed9bc885c38829362b0c">yajl_end_array</a> )(void *ctx)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>yajl is an event driven parser. this means as json elements are parsed, you are called back to do something with the data. The functions in this table indicate the various events for which you will be called back. Each callback accepts a "context" pointer, this is a void * that is passed into the yajl_parse function which the client code may use to pass around context.</p>
<p>All callbacks return an integer. If non-zero, the parse will continue. If zero, the parse will be canceled and yajl_status_client_canceled will be returned from the parse.</p>
<p>Note about handling of numbers: yajl will only convert numbers that can be represented in a double or a long int. All other numbers will be passed to the client in string form using the yajl_number callback. Furthermore, if yajl_number is not NULL, it will always be used to return numbers, that is yajl_integer and yajl_double will be ignored. If yajl_number is NULL but one of yajl_integer or yajl_double are defined, parsing of a number larger than is representable in a double or long int will result in a parse error. </p>
</div><hr/><h2>Field Documentation</h2>
<a class="anchor" id="a9e4e6a69c6e88dbb1db692cc51fdcb85"></a><!-- doxytag: member="yajl_callbacks::yajl_boolean" ref="a9e4e6a69c6e88dbb1db692cc51fdcb85" args=")(void *ctx, int boolVal)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(*  <a class="el" href="structyajl__callbacks.html#a9e4e6a69c6e88dbb1db692cc51fdcb85">yajl_callbacks::yajl_boolean</a>)(void *ctx, int boolVal)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6e4b6fc64ddb2707950eb811304d1c46"></a><!-- doxytag: member="yajl_callbacks::yajl_double" ref="a6e4b6fc64ddb2707950eb811304d1c46" args=")(void *ctx, double doubleVal)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(*  <a class="el" href="structyajl__callbacks.html#a6e4b6fc64ddb2707950eb811304d1c46">yajl_callbacks::yajl_double</a>)(void *ctx, double doubleVal)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a4671213ae60fed9bc885c38829362b0c"></a><!-- doxytag: member="yajl_callbacks::yajl_end_array" ref="a4671213ae60fed9bc885c38829362b0c" args=")(void *ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(*  <a class="el" href="structyajl__callbacks.html#a4671213ae60fed9bc885c38829362b0c">yajl_callbacks::yajl_end_array</a>)(void *ctx)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aff8abd4229027390adf59afcbb4e0f42"></a><!-- doxytag: member="yajl_callbacks::yajl_end_map" ref="aff8abd4229027390adf59afcbb4e0f42" args=")(void *ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(*  <a class="el" href="structyajl__callbacks.html#aff8abd4229027390adf59afcbb4e0f42">yajl_callbacks::yajl_end_map</a>)(void *ctx)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a929c2dc82d37b48fc03ce20f22d40769"></a><!-- doxytag: member="yajl_callbacks::yajl_integer" ref="a929c2dc82d37b48fc03ce20f22d40769" args=")(void *ctx, long integerVal)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(*  <a class="el" href="structyajl__callbacks.html#a929c2dc82d37b48fc03ce20f22d40769">yajl_callbacks::yajl_integer</a>)(void *ctx, long integerVal)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ae0c22a317a89a4d2bcb71a45673b28c9"></a><!-- doxytag: member="yajl_callbacks::yajl_map_key" ref="ae0c22a317a89a4d2bcb71a45673b28c9" args=")(void *ctx, const unsigned char *key, unsigned int stringLen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(*  <a class="el" href="structyajl__callbacks.html#ae0c22a317a89a4d2bcb71a45673b28c9">yajl_callbacks::yajl_map_key</a>)(void *ctx, const unsigned char *key, unsigned int stringLen)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a119925fa35d01fd556faa502397a6eb8"></a><!-- doxytag: member="yajl_callbacks::yajl_null" ref="a119925fa35d01fd556faa502397a6eb8" args=")(void *ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(*  <a class="el" href="structyajl__callbacks.html#a119925fa35d01fd556faa502397a6eb8">yajl_callbacks::yajl_null</a>)(void *ctx)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a485231e16d8cfc35efef17dfe2da2964"></a><!-- doxytag: member="yajl_callbacks::yajl_number" ref="a485231e16d8cfc35efef17dfe2da2964" args=")(void *ctx, const char *numberVal, unsigned int numberLen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(*  <a class="el" href="structyajl__callbacks.html#a485231e16d8cfc35efef17dfe2da2964">yajl_callbacks::yajl_number</a>)(void *ctx, const char *numberVal, unsigned int numberLen)</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>A callback which passes the string representation of the number back to the client. Will be used for all numbers when present </p>

</div>
</div>
<a class="anchor" id="aaf4cf875e2a6e1ab1a8af94d16f60083"></a><!-- doxytag: member="yajl_callbacks::yajl_start_array" ref="aaf4cf875e2a6e1ab1a8af94d16f60083" args=")(void *ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(*  <a class="el" href="structyajl__callbacks.html#aaf4cf875e2a6e1ab1a8af94d16f60083">yajl_callbacks::yajl_start_array</a>)(void *ctx)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9da6fafbc2069780a02710778e61462e"></a><!-- doxytag: member="yajl_callbacks::yajl_start_map" ref="a9da6fafbc2069780a02710778e61462e" args=")(void *ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(*  <a class="el" href="structyajl__callbacks.html#a9da6fafbc2069780a02710778e61462e">yajl_callbacks::yajl_start_map</a>)(void *ctx)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a401e63b822dccecc78dc548a5a35cff1"></a><!-- doxytag: member="yajl_callbacks::yajl_string" ref="a401e63b822dccecc78dc548a5a35cff1" args=")(void *ctx, const unsigned char *stringVal, unsigned int stringLen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(*  <a class="el" href="structyajl__callbacks.html#a401e63b822dccecc78dc548a5a35cff1">yajl_callbacks::yajl_string</a>)(void *ctx, const unsigned char *stringVal, unsigned int stringLen)</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>strings are returned as pointers into the JSON text when, possible, as a result, they are _not_ null padded </p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="yajl__parse_8h_source.html">yajl_parse.h</a></li>
</ul>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Mon Apr 25 2011 13:06:32 for YAJL by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>