ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/vendor/libpeak-0.1.2/doc/html/group__stream__common.html
Revision: 3251
Committed: Wed Apr 2 16:58:30 2014 UTC (11 years, 4 months ago) by michael
Content type: text/html
File size: 32071 byte(s)
Log Message:
- Imported libpeak-0.1.2

File Contents

# Content
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>PEAK Library: Stream common</title>
4 <link href="doxygen.css" rel="stylesheet" type="text/css">
5 </head><body>
6 <!-- Generated by Doxygen 1.3.5 -->
7 <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a></div>
8 <h1>Stream common<br>
9 <small>
10 [<a class="el" href="group__stream.html">Socket streams</a>]</small>
11 </h1><hr><a name="_details"></a><h2>Detailed Description</h2>
12 Creation methods and other common methods for socket streams.
13 <p>
14
15 <p>
16 <table border=0 cellpadding=0 cellspacing=0>
17 <tr><td></td></tr>
18 <tr><td colspan=2><br><h2>Functions</h2></td></tr>
19 <tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="group__stream.html#ga0">peak_stream</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__stream__common.html#ga0">peak_stream_socket_create</a> (struct sockaddr *name, int namelen, uint32_t opt, <a class="el" href="group__stream.html#ga1">peak_stream_event_callback</a> cb, void *context)</td></tr>
20
21 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new socket stream from a socket address. <a href="#ga0"></a><br><br></td></tr>
22 <tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="group__stream.html#ga0">peak_stream</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__stream__common.html#ga1">peak_stream_accept_create</a> (<a class="el" href="group__stream.html#ga0">peak_stream</a> ss, uint32_t opt, <a class="el" href="group__stream.html#ga1">peak_stream_event_callback</a> cb, void *context)</td></tr>
23
24 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new socket stream from a incoming connection on a listening stream. <a href="#ga1"></a><br><br></td></tr>
25 <tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="group__stream.html#ga0">peak_stream</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__stream__common.html#ga2">peak_stream_raw_create</a> (int fd, uint32_t opt, <a class="el" href="group__stream.html#ga1">peak_stream_event_callback</a> cb, void *context)</td></tr>
26
27 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new socket stream from a "raw" file descriptor (which must be a valid opened socket). <a href="#ga2"></a><br><br></td></tr>
28 <tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__stream__common.html#ga3">peak_stream_is_open</a> (<a class="el" href="group__stream.html#ga0">peak_stream</a> s)</td></tr>
29
30 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test is a socket stream is open. <a href="#ga3"></a><br><br></td></tr>
31 <tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__stream__common.html#ga4">peak_stream_get_error</a> (<a class="el" href="group__stream.html#ga0">peak_stream</a> s)</td></tr>
32
33 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get last stream system error code. <a href="#ga4"></a><br><br></td></tr>
34 <tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__stream__common.html#ga5">peak_stream_get_address</a> (<a class="el" href="group__stream.html#ga0">peak_stream</a> s, struct sockaddr *name, int *namelen)</td></tr>
35
36 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get peer's name (address). <a href="#ga5"></a><br><br></td></tr>
37 <tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__stream__common.html#ga6">peak_stream_set_address</a> (<a class="el" href="group__stream.html#ga0">peak_stream</a> s, struct sockaddr *name, int namelen)</td></tr>
38
39 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assign a name (address) to an unnamed socket. <a href="#ga6"></a><br><br></td></tr>
40 <tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__stream__common.html#ga7">peak_stream_connect</a> (<a class="el" href="group__stream.html#ga0">peak_stream</a> s)</td></tr>
41
42 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Connect the stream. <a href="#ga7"></a><br><br></td></tr>
43 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__stream__common.html#ga8">peak_stream_disconnect</a> (<a class="el" href="group__stream.html#ga0">peak_stream</a> s)</td></tr>
44
45 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Disconnect the stream. <a href="#ga8"></a><br><br></td></tr>
46 <tr><td class="memItemLeft" nowrap align=right valign=top>void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__stream__common.html#ga9">peak_stream_get_context</a> (<a class="el" href="group__stream.html#ga0">peak_stream</a> s)</td></tr>
47
48 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the context pointer of a stream. <a href="#ga9"></a><br><br></td></tr>
49 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__stream__common.html#ga10">peak_stream_set_context</a> (<a class="el" href="group__stream.html#ga0">peak_stream</a> s, void *context)</td></tr>
50
51 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change the context pointer of a stream. <a href="#ga10"></a><br><br></td></tr>
52 <tr><td class="memItemLeft" nowrap align=right valign=top>size_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__stream__common.html#ga11">peak_stream_get_read_count</a> (<a class="el" href="group__stream.html#ga0">peak_stream</a> s)</td></tr>
53
54 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get amount of bytes actually read from the stream. <a href="#ga11"></a><br><br></td></tr>
55 <tr><td class="memItemLeft" nowrap align=right valign=top>size_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__stream__common.html#ga12">peak_stream_get_write_count</a> (<a class="el" href="group__stream.html#ga0">peak_stream</a> s)</td></tr>
56
57 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get amount of bytes actually written to the stream. <a href="#ga12"></a><br><br></td></tr>
58 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__stream__common.html#ga13">peak_stream_set_timeout</a> (<a class="el" href="group__stream.html#ga0">peak_stream</a> s, int timeout)</td></tr>
59
60 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Configure event timeout checking for a specified stream. <a href="#ga13"></a><br><br></td></tr>
61 </table>
62 <hr><h2>Function Documentation</h2>
63 <a class="anchor" name="ga1" doxytag="stream.h::peak_stream_accept_create" ></a><p>
64 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
65 <tr>
66 <td class="mdRow">
67 <table cellpadding="0" cellspacing="0" border="0">
68 <tr>
69 <td class="md" nowrap valign="top"> <a class="el" href="group__stream.html#ga0">peak_stream</a> peak_stream_accept_create </td>
70 <td class="md" valign="top">(&nbsp;</td>
71 <td class="md" nowrap valign="top"><a class="el" href="group__stream.html#ga0">peak_stream</a>&nbsp;</td>
72 <td class="mdname" nowrap> <em>ss</em>, </td>
73 </tr>
74 <tr>
75 <td></td>
76 <td></td>
77 <td class="md" nowrap>uint32_t&nbsp;</td>
78 <td class="mdname" nowrap> <em>opt</em>, </td>
79 </tr>
80 <tr>
81 <td></td>
82 <td></td>
83 <td class="md" nowrap><a class="el" href="group__stream.html#ga1">peak_stream_event_callback</a>&nbsp;</td>
84 <td class="mdname" nowrap> <em>cb</em>, </td>
85 </tr>
86 <tr>
87 <td></td>
88 <td></td>
89 <td class="md" nowrap>void *&nbsp;</td>
90 <td class="mdname" nowrap> <em>context</em></td>
91 </tr>
92 <tr>
93 <td></td>
94 <td class="md">)&nbsp;</td>
95 <td class="md" colspan="2"></td>
96 </tr>
97
98 </table>
99 </td>
100 </tr>
101 </table>
102 <table cellspacing=5 cellpadding=0 border=0>
103 <tr>
104 <td>
105 &nbsp;
106 </td>
107 <td>
108
109 <p>
110 Creates a new socket stream from a incoming connection on a listening stream.
111 <p>
112 <dl compact><dt><b>Parameters:</b></dt><dd>
113 <table border="0" cellspacing="2" cellpadding="0">
114 <tr><td valign=top><em>ss</em>&nbsp;</td><td>The server's socket stream that got a PEAK_STREAM_EVT_ACCEPT event. </td></tr>
115 <tr><td valign=top><em>opt</em>&nbsp;</td><td>Stream creation options. </td></tr>
116 <tr><td valign=top><em>cb</em>&nbsp;</td><td>A pointer to your notification callback function that handles events that will occur on this stream once scheduled. </td></tr>
117 <tr><td valign=top><em>context</em>&nbsp;</td><td>An extra application-defined pointer that will be passed to your event callback function (it's not used by the library).</td></tr>
118 </table>
119 </dl>
120 <dl compact><dt><b>Returns:</b></dt><dd>A newly allocated peak_stream reference or NULL if the stream cannot be created. </dd></dl>
121 </td>
122 </tr>
123 </table>
124 <a class="anchor" name="ga7" doxytag="stream.h::peak_stream_connect" ></a><p>
125 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
126 <tr>
127 <td class="mdRow">
128 <table cellpadding="0" cellspacing="0" border="0">
129 <tr>
130 <td class="md" nowrap valign="top"> int peak_stream_connect </td>
131 <td class="md" valign="top">(&nbsp;</td>
132 <td class="md" nowrap valign="top"><a class="el" href="group__stream.html#ga0">peak_stream</a>&nbsp;</td>
133 <td class="mdname1" valign="top" nowrap> <em>s</em> </td>
134 <td class="md" valign="top">&nbsp;)&nbsp;</td>
135 <td class="md" nowrap></td>
136 </tr>
137
138 </table>
139 </td>
140 </tr>
141 </table>
142 <table cellspacing=5 cellpadding=0 border=0>
143 <tr>
144 <td>
145 &nbsp;
146 </td>
147 <td>
148
149 <p>
150 Connect the stream.
151 <p>
152 <dl compact><dt><b>Parameters:</b></dt><dd>
153 <table border="0" cellspacing="2" cellpadding="0">
154 <tr><td valign=top><em>s</em>&nbsp;</td><td>The stream reference.</td></tr>
155 </table>
156 </dl>
157 <dl compact><dt><b>Return values:</b></dt><dd>
158 <table border="0" cellspacing="2" cellpadding="0">
159 <tr><td valign=top><em>0</em>&nbsp;</td><td>if the operation is successful. </td></tr>
160 <tr><td valign=top><em>-1</em>&nbsp;</td><td>if the connection to the remote host failed. </td></tr>
161 </table>
162 </dl>
163 </td>
164 </tr>
165 </table>
166 <a class="anchor" name="ga8" doxytag="stream.h::peak_stream_disconnect" ></a><p>
167 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
168 <tr>
169 <td class="mdRow">
170 <table cellpadding="0" cellspacing="0" border="0">
171 <tr>
172 <td class="md" nowrap valign="top"> void peak_stream_disconnect </td>
173 <td class="md" valign="top">(&nbsp;</td>
174 <td class="md" nowrap valign="top"><a class="el" href="group__stream.html#ga0">peak_stream</a>&nbsp;</td>
175 <td class="mdname1" valign="top" nowrap> <em>s</em> </td>
176 <td class="md" valign="top">&nbsp;)&nbsp;</td>
177 <td class="md" nowrap></td>
178 </tr>
179
180 </table>
181 </td>
182 </tr>
183 </table>
184 <table cellspacing=5 cellpadding=0 border=0>
185 <tr>
186 <td>
187 &nbsp;
188 </td>
189 <td>
190
191 <p>
192 Disconnect the stream.
193 <p>
194 <dl compact><dt><b>Parameters:</b></dt><dd>
195 <table border="0" cellspacing="2" cellpadding="0">
196 <tr><td valign=top><em>s</em>&nbsp;</td><td>The stream reference. </td></tr>
197 </table>
198 </dl>
199 </td>
200 </tr>
201 </table>
202 <a class="anchor" name="ga5" doxytag="stream.h::peak_stream_get_address" ></a><p>
203 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
204 <tr>
205 <td class="mdRow">
206 <table cellpadding="0" cellspacing="0" border="0">
207 <tr>
208 <td class="md" nowrap valign="top"> int peak_stream_get_address </td>
209 <td class="md" valign="top">(&nbsp;</td>
210 <td class="md" nowrap valign="top"><a class="el" href="group__stream.html#ga0">peak_stream</a>&nbsp;</td>
211 <td class="mdname" nowrap> <em>s</em>, </td>
212 </tr>
213 <tr>
214 <td></td>
215 <td></td>
216 <td class="md" nowrap>struct sockaddr *&nbsp;</td>
217 <td class="mdname" nowrap> <em>name</em>, </td>
218 </tr>
219 <tr>
220 <td></td>
221 <td></td>
222 <td class="md" nowrap>int *&nbsp;</td>
223 <td class="mdname" nowrap> <em>namelen</em></td>
224 </tr>
225 <tr>
226 <td></td>
227 <td class="md">)&nbsp;</td>
228 <td class="md" colspan="2"></td>
229 </tr>
230
231 </table>
232 </td>
233 </tr>
234 </table>
235 <table cellspacing=5 cellpadding=0 border=0>
236 <tr>
237 <td>
238 &nbsp;
239 </td>
240 <td>
241
242 <p>
243 Get peer's name (address).
244 <p>
245 <dl compact><dt><b>Parameters:</b></dt><dd>
246 <table border="0" cellspacing="2" cellpadding="0">
247 <tr><td valign=top><em>s</em>&nbsp;</td><td>The stream reference. </td></tr>
248 <tr><td valign=top><em>name</em>&nbsp;</td><td>A pointer to an allocated space for the address, enough to hold it (eg. a struct sockaddr_in for an IPv4 address). </td></tr>
249 <tr><td valign=top><em>namelen</em>&nbsp;</td><td>Input/output argument, should be initialized to indicate the amount of size pointed to by <em>name</em>. On return it contains the actual size of the name returned (in bytes).</td></tr>
250 </table>
251 </dl>
252 <dl compact><dt><b>Return values:</b></dt><dd>
253 <table border="0" cellspacing="2" cellpadding="0">
254 <tr><td valign=top><em>0</em>&nbsp;</td><td>if the operation is successful. </td></tr>
255 <tr><td valign=top><em>-1</em>&nbsp;</td><td>if the buffer <em>name</em> is too small. </td></tr>
256 </table>
257 </dl>
258 </td>
259 </tr>
260 </table>
261 <a class="anchor" name="ga9" doxytag="stream.h::peak_stream_get_context" ></a><p>
262 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
263 <tr>
264 <td class="mdRow">
265 <table cellpadding="0" cellspacing="0" border="0">
266 <tr>
267 <td class="md" nowrap valign="top"> void* peak_stream_get_context </td>
268 <td class="md" valign="top">(&nbsp;</td>
269 <td class="md" nowrap valign="top"><a class="el" href="group__stream.html#ga0">peak_stream</a>&nbsp;</td>
270 <td class="mdname1" valign="top" nowrap> <em>s</em> </td>
271 <td class="md" valign="top">&nbsp;)&nbsp;</td>
272 <td class="md" nowrap></td>
273 </tr>
274
275 </table>
276 </td>
277 </tr>
278 </table>
279 <table cellspacing=5 cellpadding=0 border=0>
280 <tr>
281 <td>
282 &nbsp;
283 </td>
284 <td>
285
286 <p>
287 Get the context pointer of a stream.
288 <p>
289 <dl compact><dt><b>Parameters:</b></dt><dd>
290 <table border="0" cellspacing="2" cellpadding="0">
291 <tr><td valign=top><em>s</em>&nbsp;</td><td>The stream reference.</td></tr>
292 </table>
293 </dl>
294 <dl compact><dt><b>Returns:</b></dt><dd>The application-defined pointer. </dd></dl>
295 </td>
296 </tr>
297 </table>
298 <a class="anchor" name="ga4" doxytag="stream.h::peak_stream_get_error" ></a><p>
299 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
300 <tr>
301 <td class="mdRow">
302 <table cellpadding="0" cellspacing="0" border="0">
303 <tr>
304 <td class="md" nowrap valign="top"> int peak_stream_get_error </td>
305 <td class="md" valign="top">(&nbsp;</td>
306 <td class="md" nowrap valign="top"><a class="el" href="group__stream.html#ga0">peak_stream</a>&nbsp;</td>
307 <td class="mdname1" valign="top" nowrap> <em>s</em> </td>
308 <td class="md" valign="top">&nbsp;)&nbsp;</td>
309 <td class="md" nowrap></td>
310 </tr>
311
312 </table>
313 </td>
314 </tr>
315 </table>
316 <table cellspacing=5 cellpadding=0 border=0>
317 <tr>
318 <td>
319 &nbsp;
320 </td>
321 <td>
322
323 <p>
324 Get last stream system error code.
325 <p>
326 Returns the last socket or system error code as defined in sys/errno.h.<p>
327 <dl compact><dt><b>Parameters:</b></dt><dd>
328 <table border="0" cellspacing="2" cellpadding="0">
329 <tr><td valign=top><em>s</em>&nbsp;</td><td>The stream reference.</td></tr>
330 </table>
331 </dl>
332 <dl compact><dt><b>Returns:</b></dt><dd>The error code. </dd></dl>
333 </td>
334 </tr>
335 </table>
336 <a class="anchor" name="ga11" doxytag="stream.h::peak_stream_get_read_count" ></a><p>
337 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
338 <tr>
339 <td class="mdRow">
340 <table cellpadding="0" cellspacing="0" border="0">
341 <tr>
342 <td class="md" nowrap valign="top"> size_t peak_stream_get_read_count </td>
343 <td class="md" valign="top">(&nbsp;</td>
344 <td class="md" nowrap valign="top"><a class="el" href="group__stream.html#ga0">peak_stream</a>&nbsp;</td>
345 <td class="mdname1" valign="top" nowrap> <em>s</em> </td>
346 <td class="md" valign="top">&nbsp;)&nbsp;</td>
347 <td class="md" nowrap></td>
348 </tr>
349
350 </table>
351 </td>
352 </tr>
353 </table>
354 <table cellspacing=5 cellpadding=0 border=0>
355 <tr>
356 <td>
357 &nbsp;
358 </td>
359 <td>
360
361 <p>
362 Get amount of bytes actually read from the stream.
363 <p>
364 Statistical function.<p>
365 <dl compact><dt><b>Parameters:</b></dt><dd>
366 <table border="0" cellspacing="2" cellpadding="0">
367 <tr><td valign=top><em>s</em>&nbsp;</td><td>The stream reference.</td></tr>
368 </table>
369 </dl>
370 <dl compact><dt><b>Returns:</b></dt><dd>Number of bytes read since the stream's creation. </dd></dl>
371 </td>
372 </tr>
373 </table>
374 <a class="anchor" name="ga12" doxytag="stream.h::peak_stream_get_write_count" ></a><p>
375 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
376 <tr>
377 <td class="mdRow">
378 <table cellpadding="0" cellspacing="0" border="0">
379 <tr>
380 <td class="md" nowrap valign="top"> size_t peak_stream_get_write_count </td>
381 <td class="md" valign="top">(&nbsp;</td>
382 <td class="md" nowrap valign="top"><a class="el" href="group__stream.html#ga0">peak_stream</a>&nbsp;</td>
383 <td class="mdname1" valign="top" nowrap> <em>s</em> </td>
384 <td class="md" valign="top">&nbsp;)&nbsp;</td>
385 <td class="md" nowrap></td>
386 </tr>
387
388 </table>
389 </td>
390 </tr>
391 </table>
392 <table cellspacing=5 cellpadding=0 border=0>
393 <tr>
394 <td>
395 &nbsp;
396 </td>
397 <td>
398
399 <p>
400 Get amount of bytes actually written to the stream.
401 <p>
402 Statistical function.<p>
403 <dl compact><dt><b>Parameters:</b></dt><dd>
404 <table border="0" cellspacing="2" cellpadding="0">
405 <tr><td valign=top><em>s</em>&nbsp;</td><td>The stream reference.</td></tr>
406 </table>
407 </dl>
408 <dl compact><dt><b>Returns:</b></dt><dd>Number of bytes written since the stream's creation. </dd></dl>
409 </td>
410 </tr>
411 </table>
412 <a class="anchor" name="ga3" doxytag="stream.h::peak_stream_is_open" ></a><p>
413 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
414 <tr>
415 <td class="mdRow">
416 <table cellpadding="0" cellspacing="0" border="0">
417 <tr>
418 <td class="md" nowrap valign="top"> int peak_stream_is_open </td>
419 <td class="md" valign="top">(&nbsp;</td>
420 <td class="md" nowrap valign="top"><a class="el" href="group__stream.html#ga0">peak_stream</a>&nbsp;</td>
421 <td class="mdname1" valign="top" nowrap> <em>s</em> </td>
422 <td class="md" valign="top">&nbsp;)&nbsp;</td>
423 <td class="md" nowrap></td>
424 </tr>
425
426 </table>
427 </td>
428 </tr>
429 </table>
430 <table cellspacing=5 cellpadding=0 border=0>
431 <tr>
432 <td>
433 &nbsp;
434 </td>
435 <td>
436
437 <p>
438 Test is a socket stream is open.
439 <p>
440 An open stream is a connected socket for connection oriented streams.<p>
441 <dl compact><dt><b>Parameters:</b></dt><dd>
442 <table border="0" cellspacing="2" cellpadding="0">
443 <tr><td valign=top><em>s</em>&nbsp;</td><td>The stream reference.</td></tr>
444 </table>
445 </dl>
446 <dl compact><dt><b>Return values:</b></dt><dd>
447 <table border="0" cellspacing="2" cellpadding="0">
448 <tr><td valign=top><em>0</em>&nbsp;</td><td>Stream not open. </td></tr>
449 <tr><td valign=top><em>1</em>&nbsp;</td><td>Stream open. </td></tr>
450 </table>
451 </dl>
452 </td>
453 </tr>
454 </table>
455 <a class="anchor" name="ga2" doxytag="stream.h::peak_stream_raw_create" ></a><p>
456 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
457 <tr>
458 <td class="mdRow">
459 <table cellpadding="0" cellspacing="0" border="0">
460 <tr>
461 <td class="md" nowrap valign="top"> <a class="el" href="group__stream.html#ga0">peak_stream</a> peak_stream_raw_create </td>
462 <td class="md" valign="top">(&nbsp;</td>
463 <td class="md" nowrap valign="top">int&nbsp;</td>
464 <td class="mdname" nowrap> <em>fd</em>, </td>
465 </tr>
466 <tr>
467 <td></td>
468 <td></td>
469 <td class="md" nowrap>uint32_t&nbsp;</td>
470 <td class="mdname" nowrap> <em>opt</em>, </td>
471 </tr>
472 <tr>
473 <td></td>
474 <td></td>
475 <td class="md" nowrap><a class="el" href="group__stream.html#ga1">peak_stream_event_callback</a>&nbsp;</td>
476 <td class="mdname" nowrap> <em>cb</em>, </td>
477 </tr>
478 <tr>
479 <td></td>
480 <td></td>
481 <td class="md" nowrap>void *&nbsp;</td>
482 <td class="mdname" nowrap> <em>context</em></td>
483 </tr>
484 <tr>
485 <td></td>
486 <td class="md">)&nbsp;</td>
487 <td class="md" colspan="2"></td>
488 </tr>
489
490 </table>
491 </td>
492 </tr>
493 </table>
494 <table cellspacing=5 cellpadding=0 border=0>
495 <tr>
496 <td>
497 &nbsp;
498 </td>
499 <td>
500
501 <p>
502 Creates a new socket stream from a "raw" file descriptor (which must be a valid opened socket).
503 <p>
504 <dl compact><dt><b>Parameters:</b></dt><dd>
505 <table border="0" cellspacing="2" cellpadding="0">
506 <tr><td valign=top><em>fd</em>&nbsp;</td><td>The socket file descriptor. </td></tr>
507 <tr><td valign=top><em>opt</em>&nbsp;</td><td>Stream creation options. </td></tr>
508 <tr><td valign=top><em>cb</em>&nbsp;</td><td>A pointer to your notification callback function that handles events that will occur on this stream once scheduled. </td></tr>
509 <tr><td valign=top><em>context</em>&nbsp;</td><td>An extra application-defined pointer that will be passed to your event callback function (it's not used by the library).</td></tr>
510 </table>
511 </dl>
512 <dl compact><dt><b>Returns:</b></dt><dd>A newly allocated peak_stream reference or NULL if the stream cannot be created. </dd></dl>
513 </td>
514 </tr>
515 </table>
516 <a class="anchor" name="ga6" doxytag="stream.h::peak_stream_set_address" ></a><p>
517 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
518 <tr>
519 <td class="mdRow">
520 <table cellpadding="0" cellspacing="0" border="0">
521 <tr>
522 <td class="md" nowrap valign="top"> int peak_stream_set_address </td>
523 <td class="md" valign="top">(&nbsp;</td>
524 <td class="md" nowrap valign="top"><a class="el" href="group__stream.html#ga0">peak_stream</a>&nbsp;</td>
525 <td class="mdname" nowrap> <em>s</em>, </td>
526 </tr>
527 <tr>
528 <td></td>
529 <td></td>
530 <td class="md" nowrap>struct sockaddr *&nbsp;</td>
531 <td class="mdname" nowrap> <em>name</em>, </td>
532 </tr>
533 <tr>
534 <td></td>
535 <td></td>
536 <td class="md" nowrap>int&nbsp;</td>
537 <td class="mdname" nowrap> <em>namelen</em></td>
538 </tr>
539 <tr>
540 <td></td>
541 <td class="md">)&nbsp;</td>
542 <td class="md" colspan="2"></td>
543 </tr>
544
545 </table>
546 </td>
547 </tr>
548 </table>
549 <table cellspacing=5 cellpadding=0 border=0>
550 <tr>
551 <td>
552 &nbsp;
553 </td>
554 <td>
555
556 <p>
557 Assign a name (address) to an unnamed socket.
558 <p>
559 This function allow you to bind the stream to a local address which is not the default (eg. for a vhost). Not for use with streams with the <code>PEAK_STREAM_OPT_LISTEN</code> option flag.<p>
560 <dl compact><dt><b>Parameters:</b></dt><dd>
561 <table border="0" cellspacing="2" cellpadding="0">
562 <tr><td valign=top><em>s</em>&nbsp;</td><td>The stream reference. </td></tr>
563 <tr><td valign=top><em>name</em>&nbsp;</td><td>A pointer to a structure describing the name (address) to assign to the stream socket. </td></tr>
564 <tr><td valign=top><em>namelen</em>&nbsp;</td><td>The length of the pointed structure by name.</td></tr>
565 </table>
566 </dl>
567 <dl compact><dt><b>Return values:</b></dt><dd>
568 <table border="0" cellspacing="2" cellpadding="0">
569 <tr><td valign=top><em>0</em>&nbsp;</td><td>if the operation is successful. </td></tr>
570 <tr><td valign=top><em>-1</em>&nbsp;</td><td>otherwise. </td></tr>
571 </table>
572 </dl>
573 </td>
574 </tr>
575 </table>
576 <a class="anchor" name="ga10" doxytag="stream.h::peak_stream_set_context" ></a><p>
577 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
578 <tr>
579 <td class="mdRow">
580 <table cellpadding="0" cellspacing="0" border="0">
581 <tr>
582 <td class="md" nowrap valign="top"> void peak_stream_set_context </td>
583 <td class="md" valign="top">(&nbsp;</td>
584 <td class="md" nowrap valign="top"><a class="el" href="group__stream.html#ga0">peak_stream</a>&nbsp;</td>
585 <td class="mdname" nowrap> <em>s</em>, </td>
586 </tr>
587 <tr>
588 <td></td>
589 <td></td>
590 <td class="md" nowrap>void *&nbsp;</td>
591 <td class="mdname" nowrap> <em>context</em></td>
592 </tr>
593 <tr>
594 <td></td>
595 <td class="md">)&nbsp;</td>
596 <td class="md" colspan="2"></td>
597 </tr>
598
599 </table>
600 </td>
601 </tr>
602 </table>
603 <table cellspacing=5 cellpadding=0 border=0>
604 <tr>
605 <td>
606 &nbsp;
607 </td>
608 <td>
609
610 <p>
611 Change the context pointer of a stream.
612 <p>
613 <dl compact><dt><b>Parameters:</b></dt><dd>
614 <table border="0" cellspacing="2" cellpadding="0">
615 <tr><td valign=top><em>s</em>&nbsp;</td><td>The stream reference. </td></tr>
616 <tr><td valign=top><em>context</em>&nbsp;</td><td>An extra application-defined pointer that will be passed to your event callback function (it's not used by the library). </td></tr>
617 </table>
618 </dl>
619 </td>
620 </tr>
621 </table>
622 <a class="anchor" name="ga13" doxytag="stream.h::peak_stream_set_timeout" ></a><p>
623 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
624 <tr>
625 <td class="mdRow">
626 <table cellpadding="0" cellspacing="0" border="0">
627 <tr>
628 <td class="md" nowrap valign="top"> void peak_stream_set_timeout </td>
629 <td class="md" valign="top">(&nbsp;</td>
630 <td class="md" nowrap valign="top"><a class="el" href="group__stream.html#ga0">peak_stream</a>&nbsp;</td>
631 <td class="mdname" nowrap> <em>s</em>, </td>
632 </tr>
633 <tr>
634 <td></td>
635 <td></td>
636 <td class="md" nowrap>int&nbsp;</td>
637 <td class="mdname" nowrap> <em>timeout</em></td>
638 </tr>
639 <tr>
640 <td></td>
641 <td class="md">)&nbsp;</td>
642 <td class="md" colspan="2"></td>
643 </tr>
644
645 </table>
646 </td>
647 </tr>
648 </table>
649 <table cellspacing=5 cellpadding=0 border=0>
650 <tr>
651 <td>
652 &nbsp;
653 </td>
654 <td>
655
656 <p>
657 Configure event timeout checking for a specified stream.
658 <p>
659 This is a convenience feature. First, because an explicit timer isn't needed to check stream's timeout in your application anymore. But for thread safety too: when peak is not explicitely configured to use only one thread, an independant timer might be processed at the same time with an event on the stream, so you need to add mutual exclusive region (implementation is possible with <a class="el" href="group__task__sync.html#ga21">peak_task_exclusivity()</a>), and verify all it's well synchronized. With <a class="el" href="group__stream__common.html#ga53">peak_stream_set_timeout()</a> however, the timeout event acts like a normal stream events and cannot be processed at the same time with another on the same stream.<p>
660 <dl compact><dt><b>Parameters:</b></dt><dd>
661 <table border="0" cellspacing="2" cellpadding="0">
662 <tr><td valign=top><em>s</em>&nbsp;</td><td>The stream reference. </td></tr>
663 <tr><td valign=top><em>timeout</em>&nbsp;</td><td>Time in seconds until an event of type <em>PEAK_STREAM_EVT_TIMEDOUT</em> will be sent. Use 0 to disable timeout checking. </td></tr>
664 </table>
665 </dl>
666 </td>
667 </tr>
668 </table>
669 <a class="anchor" name="ga0" doxytag="stream.h::peak_stream_socket_create" ></a><p>
670 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
671 <tr>
672 <td class="mdRow">
673 <table cellpadding="0" cellspacing="0" border="0">
674 <tr>
675 <td class="md" nowrap valign="top"> <a class="el" href="group__stream.html#ga0">peak_stream</a> peak_stream_socket_create </td>
676 <td class="md" valign="top">(&nbsp;</td>
677 <td class="md" nowrap valign="top">struct sockaddr *&nbsp;</td>
678 <td class="mdname" nowrap> <em>name</em>, </td>
679 </tr>
680 <tr>
681 <td></td>
682 <td></td>
683 <td class="md" nowrap>int&nbsp;</td>
684 <td class="mdname" nowrap> <em>namelen</em>, </td>
685 </tr>
686 <tr>
687 <td></td>
688 <td></td>
689 <td class="md" nowrap>uint32_t&nbsp;</td>
690 <td class="mdname" nowrap> <em>opt</em>, </td>
691 </tr>
692 <tr>
693 <td></td>
694 <td></td>
695 <td class="md" nowrap><a class="el" href="group__stream.html#ga1">peak_stream_event_callback</a>&nbsp;</td>
696 <td class="mdname" nowrap> <em>cb</em>, </td>
697 </tr>
698 <tr>
699 <td></td>
700 <td></td>
701 <td class="md" nowrap>void *&nbsp;</td>
702 <td class="mdname" nowrap> <em>context</em></td>
703 </tr>
704 <tr>
705 <td></td>
706 <td class="md">)&nbsp;</td>
707 <td class="md" colspan="2"></td>
708 </tr>
709
710 </table>
711 </td>
712 </tr>
713 </table>
714 <table cellspacing=5 cellpadding=0 border=0>
715 <tr>
716 <td>
717 &nbsp;
718 </td>
719 <td>
720
721 <p>
722 Creates a new socket stream from a socket address.
723 <p>
724 <dl compact><dt><b>Parameters:</b></dt><dd>
725 <table border="0" cellspacing="2" cellpadding="0">
726 <tr><td valign=top><em>name</em>&nbsp;</td><td>Pointer to a socket's name/address. For listening sockets, this is the name/local address of the socket, but for outgoing sockets this is the name/address of the other socket. Several socket protocol types are supported (PF_INET, PF_INET6). </td></tr>
727 <tr><td valign=top><em>namelen</em>&nbsp;</td><td>Length of the structure pointed by name. </td></tr>
728 <tr><td valign=top><em>opt</em>&nbsp;</td><td>Stream creation options. </td></tr>
729 <tr><td valign=top><em>cb</em>&nbsp;</td><td>A pointer to your notification callback function that handles events that will occur on this stream once scheduled. </td></tr>
730 <tr><td valign=top><em>context</em>&nbsp;</td><td>An extra application-defined pointer that will be passed to your event callback function (it's not used by the library).</td></tr>
731 </table>
732 </dl>
733 <dl compact><dt><b>Returns:</b></dt><dd>A newly allocated peak_stream reference or NULL if the stream cannot be created. </dd></dl>
734 </td>
735 </tr>
736 </table>
737 <hr size="1"><address style="align: right;"><small>Generated on Sat Jan 17 21:41:54 2004 for the PEAK Library by
738 <a href="http://www.doxygen.org/index.html">
739 <img src="doxygen.png" alt="doxygen" align="middle" border="0" >
740 </a></small>&nbsp; &nbsp; <a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=98146&amp;type=1" width="88" height="31" align="middle" border="0" alt="SourceForge.net Logo" /></a></address>
741 </body>
742 </html>
743