gnuk/ChibiOS_2.0.8/docs/html/group__data__streams.html

210 lines
12 KiB
HTML
Raw Normal View History

2010-08-10 03:11:02 +00:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>ChibiOS/RT: Data Streams</title>
<link href="custom.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<table style="text-align: center; width: 100%;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="width: 80px;"><img alt="ChibiOS/RT Logo" src="logo_small.png"></td>
<td><big><big>ChibiOS/RT</big></big><br><br>Architecture - Reference Manual - Guides</td>
<td style="width: 80px;"></td>
</tr>
</tbody>
</table>
<hr size="1">
2010-11-22 05:53:37 +00:00
<!-- Generated by Doxygen 1.7.1 -->
2010-08-10 03:11:02 +00:00
<div class="navigation" id="top">
<div class="tabs">
2010-11-22 05:53:37 +00:00
<ul class="tablist">
2010-08-10 03:11:02 +00:00
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
2010-11-22 05:53:37 +00:00
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Defines</a> </div>
<div class="headertitle">
2010-08-10 03:11:02 +00:00
<h1>Data Streams<br/>
<small>
[<a class="el" href="group__io__support.html">I/O Support</a>]</small>
2010-11-22 05:53:37 +00:00
</h1> </div>
</div>
<div class="contents">
2010-08-10 03:11:02 +00:00
<p><div class="dynheader">
Collaboration diagram for Data Streams:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<center><table><tr><td><img src="group__data__streams.png" border="0" alt="" usemap="#group____data____streams"/>
<map name="group____data____streams" id="group____data____streams">
<area shape="rect" id="node2" href="group__io__support.html" title="I/O Support" alt="" coords="7,5,81,32"/> </map>
</td></tr></table></center>
2010-08-10 03:11:02 +00:00
</div>
</p>
<hr/><a name="_details"></a><h2>Description</h2>
<p>This module define an abstract interface for generic data streams. Note that no code is present, streams are just abstract interfaces like structures, you should look at the systems as to a set of abstract C++ classes (even if written in C). This system has the advantage to make the access to streams independent from the implementation logic.<br/>
The stream interface can be used as base class for high level object types such as files, sockets, serial ports, pipes etc. </p>
2010-11-22 05:53:37 +00:00
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_base_sequential_stream_v_m_t.html">BaseSequentialStreamVMT</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="struct_base_sequential_stream.html" title="Base stream class.">BaseSequentialStream</a></code> virtual methods table. <a href="struct_base_sequential_stream_v_m_t.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_base_sequential_stream.html">BaseSequentialStream</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Base stream class. <a href="struct_base_sequential_stream.html#_details">More...</a><br/></td></tr>
2010-11-22 05:53:37 +00:00
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__data__streams.html#ga5323b44ccf2eee6e0f3ef7b22fb55eeb">_base_sequential_stream_methods</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="struct_base_sequential_stream.html" title="Base stream class.">BaseSequentialStream</a> specific methods. <a href="#ga5323b44ccf2eee6e0f3ef7b22fb55eeb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__data__streams.html#gabac5bf050a931f5a3be6cac09ba7b373">_base_sequential_stream_data</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><code><a class="el" href="struct_base_sequential_stream.html" title="Base stream class.">BaseSequentialStream</a></code> specific data. <a href="#gabac5bf050a931f5a3be6cac09ba7b373"></a><br/></td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__data__streams.html#gabef80bcf56e3f5717117f4051c0ca515">chSequentialStreamWrite</a>(ip, bp, n)&nbsp;&nbsp;&nbsp;((ip)-&gt;vmt-&gt;write(ip, bp, n))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sequential Stream write. <a href="#gabef80bcf56e3f5717117f4051c0ca515"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__data__streams.html#ga3b78d0032a4346b92c2a60534c322fc5">chSequentialStreamRead</a>(ip, bp, n)&nbsp;&nbsp;&nbsp;((ip)-&gt;vmt-&gt;read(ip, bp, n))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sequential Stream read. <a href="#ga3b78d0032a4346b92c2a60534c322fc5"></a><br/></td></tr>
</table>
<hr/><h2>Define Documentation</h2>
2010-11-22 05:53:37 +00:00
<a class="anchor" id="ga5323b44ccf2eee6e0f3ef7b22fb55eeb"></a><!-- doxytag: member="chstreams.h::_base_sequential_stream_methods" ref="ga5323b44ccf2eee6e0f3ef7b22fb55eeb" args="" -->
2010-08-10 03:11:02 +00:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
2010-11-22 05:53:37 +00:00
<td class="memname">#define _base_sequential_stream_methods</td>
2010-08-10 03:11:02 +00:00
</tr>
</table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="comment">/* Stream write buffer method.*/</span> \
size_t (*write)(<span class="keywordtype">void</span> *instance, <span class="keyword">const</span> <a class="code" href="group___s_t_m8___c_o_r_e.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *bp, <span class="keywordtype">size_t</span> n); \
<span class="comment">/* Stream read buffer method.*/</span> \
size_t (*read)(<span class="keywordtype">void</span> *instance, <a class="code" href="group___s_t_m8___c_o_r_e.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *bp, <span class="keywordtype">size_t</span> n);
</pre></div>
<p><a class="el" href="struct_base_sequential_stream.html" title="Base stream class.">BaseSequentialStream</a> specific methods. </p>
<p>Definition at line <a class="el" href="chstreams_8h_source.html#l00051">51</a> of file <a class="el" href="chstreams_8h_source.html">chstreams.h</a>.</p>
</div>
</div>
2010-11-22 05:53:37 +00:00
<a class="anchor" id="gabac5bf050a931f5a3be6cac09ba7b373"></a><!-- doxytag: member="chstreams.h::_base_sequential_stream_data" ref="gabac5bf050a931f5a3be6cac09ba7b373" args="" -->
2010-08-10 03:11:02 +00:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
2010-11-22 05:53:37 +00:00
<td class="memname">#define _base_sequential_stream_data</td>
2010-08-10 03:11:02 +00:00
</tr>
</table>
</div>
<div class="memdoc">
<p><code><a class="el" href="struct_base_sequential_stream.html" title="Base stream class.">BaseSequentialStream</a></code> specific data. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>It is empty because <code><a class="el" href="struct_base_sequential_stream.html" title="Base stream class.">BaseSequentialStream</a></code> is only an interface without implementation. </dd></dl>
<p>Definition at line <a class="el" href="chstreams_8h_source.html#l00062">62</a> of file <a class="el" href="chstreams_8h_source.html">chstreams.h</a>.</p>
</div>
</div>
<a class="anchor" id="gabef80bcf56e3f5717117f4051c0ca515"></a><!-- doxytag: member="chstreams.h::chSequentialStreamWrite" ref="gabef80bcf56e3f5717117f4051c0ca515" args="(ip, bp, n)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define chSequentialStreamWrite</td>
<td>(</td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">ip, </td>
2010-08-10 03:11:02 +00:00
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">bp, </td>
2010-08-10 03:11:02 +00:00
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">n</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td>&nbsp;&nbsp;&nbsp;((ip)-&gt;vmt-&gt;write(ip, bp, n))</td>
2010-08-10 03:11:02 +00:00
</tr>
</table>
</div>
<div class="memdoc">
<p>Sequential Stream write. </p>
<p>The function writes data from a buffer to a stream.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>ip</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_base_sequential_stream.html" title="Base stream class.">BaseSequentialStream</a></code> or derived class </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>bp</em>&nbsp;</td><td>pointer to the data buffer </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>n</em>&nbsp;</td><td>the maximum amount of data to be transferred </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of bytes transferred. The return value can be less than the specified number of bytes if the stream reaches a physical end of file and cannot be extended. </dd></dl>
<p>Definition at line <a class="el" href="chstreams_8h_source.html#l00094">94</a> of file <a class="el" href="chstreams_8h_source.html">chstreams.h</a>.</p>
</div>
</div>
<a class="anchor" id="ga3b78d0032a4346b92c2a60534c322fc5"></a><!-- doxytag: member="chstreams.h::chSequentialStreamRead" ref="ga3b78d0032a4346b92c2a60534c322fc5" args="(ip, bp, n)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define chSequentialStreamRead</td>
<td>(</td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">ip, </td>
2010-08-10 03:11:02 +00:00
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">bp, </td>
2010-08-10 03:11:02 +00:00
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">n</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td>&nbsp;&nbsp;&nbsp;((ip)-&gt;vmt-&gt;read(ip, bp, n))</td>
2010-08-10 03:11:02 +00:00
</tr>
</table>
</div>
<div class="memdoc">
<p>Sequential Stream read. </p>
<p>The function reads data from a stream into a buffer.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>ip</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_base_sequential_stream.html" title="Base stream class.">BaseSequentialStream</a></code> or derived class </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>bp</em>&nbsp;</td><td>pointer to the data buffer </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>n</em>&nbsp;</td><td>the maximum amount of data to be transferred </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of bytes transferred. The return value can be less than the specified number of bytes if the stream reaches the end of the available data. </dd></dl>
<p>Definition at line <a class="el" href="chstreams_8h_source.html#l00107">107</a> of file <a class="el" href="chstreams_8h_source.html">chstreams.h</a>.</p>
</div>
</div>
</div>
<hr size="1"><address style="text-align: right;"><small>
2010-11-30 04:54:43 +00:00
Generated on Sun Nov 28 2010 14:09:56 for ChibiOS/RT by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.7.1</small></address>
2010-08-10 03:11:02 +00:00
</body>
</html>