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

# User Rev Content
1 michael 3251 <!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