⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a00779.html

📁 opendds 1.2 最新版 面向分布式实时网络编程
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>OpenDDS: TAO::DCPS::ZeroCopyDataSeq&lt; Sample_T, DEF_MAX &gt; Class Template Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li id="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul></div>
<div class="nav">
<a class="el" href="a01308.html">TAO</a>::<a class="el" href="a01309.html">DCPS</a>::<a class="el" href="a00779.html">ZeroCopyDataSeq</a></div>
<h1>TAO::DCPS::ZeroCopyDataSeq&lt; Sample_T, DEF_MAX &gt; Class Template Reference</h1><!-- doxytag: class="TAO::DCPS::ZeroCopyDataSeq" --><code>#include &lt;ZeroCopySeq_T.h&gt;</code>
<p>
Collaboration diagram for TAO::DCPS::ZeroCopyDataSeq&lt; Sample_T, DEF_MAX &gt;:<p><center><img src="a03161.png" border="0" usemap="#a03162" alt="Collaboration graph"></center>
<map name="a03162">
<area href="a00780.html" shape="rect" coords="97,8,567,32" alt="">
<area href="a00498.html" shape="rect" coords="211,56,453,80" alt="">
<area href="a00548.html" shape="rect" coords="5,152,659,176" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="a00181.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#4bd0147f7dcdeb381aeebead08606eb2">ZeroCopyDataSeq</a> (CORBA::ULong maximum=0, CORBA::ULong init_size=DEF_MAX, <a class="el" href="a00465.html">ACE_Allocator</a> *alloc=0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#93ba7af1ffd7966d75ee7d5ca8735051">ZeroCopyDataSeq</a> (CORBA::ULong maximum, CORBA::ULong length, Sample_T *buffer, CORBA::Boolean release=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#6dddd13e1b02370c93b3d146b1756c22">ZeroCopyDataSeq</a> (const <a class="el" href="a00779.html">ZeroCopyDataSeq</a> &amp;frm)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00779.html">ZeroCopyDataSeq</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#d93ee6416e20f75b55dfcf3f95198812">operator=</a> (const <a class="el" href="a00779.html">ZeroCopyDataSeq</a> &amp;frm)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#aa2b51cadc8b06cf3af38482e72ce21d">swap</a> (<a class="el" href="a00779.html">ZeroCopyDataSeq</a> &amp;frm)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#f85244881be45044cd99ee3ba4ef1ca0">~ZeroCopyDataSeq</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">CORBA::ULong&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#6ccb910a122f26b40b21718013634beb">maximum</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#a03d72c01b46a265f054114e7d4d19a7">length</a> (CORBA::ULong length)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">CORBA::ULong&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#246c2c06ca2682799a7225ef7173cdcb">length</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const Sample_T &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#60120a6bcd19d421bd1af1e44fd95d21">operator[]</a> (CORBA::ULong i) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">Sample_T &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#4ca3c0ec6585ebecddaa1d620c2eebba">operator[]</a> (CORBA::ULong i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">CORBA::Boolean&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#d185bcbbeaeb6b2ffd6feff001e34d0d">release</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#c4ddf5657159b575c92079c27c34a3b6">replace</a> (CORBA::ULong max, CORBA::ULong length, Sample_T *buffer, CORBA::Boolean release=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">Sample_T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#2f3fbe39481614718e0225d3bc874949">get_buffer</a> (CORBA::Boolean orphan=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const Sample_T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#0635b47b003a041da05e974bc13bb1a1">get_buffer</a> () const </td></tr>

<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static Sample_T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#4046ecff135c64629fddaf04c55ad93c">allocbuf</a> (CORBA::ULong nelems)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#9ee2970c246c32e62fb26f60cc0463e8">freebuf</a> (Sample_T *buffer)</td></tr>

<tr><td colspan="2"><br><h2>Private Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="a00780.html">DDS_Vector</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#f3b829f608b892dc2acaaf8468e8a130">Ptr_Seq_Type</a></td></tr>

<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">CORBA::ULong&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#142f56899dd882ff1030e5a761aa2c25">max_slots</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#8be7af05b0483992553331d8230ac0bd">internal_set_length</a> (CORBA::ULong len)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#a2c64408a3f7a9a84b7a522df67626cc">set_loaner</a> (<a class="el" href="a00498.html">OpenDDS::DCPS::DataReaderImpl</a> *loaner)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#0ca1e22c72e69730e1946e7b541b076d">assign_ptr</a> (CORBA::ULong ii, <a class="el" href="a00645.html">OpenDDS::DCPS::ReceivedDataElement</a> *item)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00645.html">OpenDDS::DCPS::ReceivedDataElement</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#07e2aee1bd01c91b7005b6ff8f1ceb44">get_ptr</a> (CORBA::ULong ii) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#2d917e89f40b65dfba5e9f780ce856b5">assign_sample</a> (CORBA::ULong ii, const Sample_T &amp;sample)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#d5fe8b53980b26bc63aca8bd2e615a46">is_zero_copy</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#e0124eae7434c7d4f7f3736d3a2e6127">make_single_copy</a> (CORBA::ULong maximum)</td></tr>

<tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00498.html">OpenDDS::DCPS::DataReaderImpl</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#1343d718446d000f27840e256bf2490a">loaner_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The datareader that loaned its samples.  <a href="#1343d718446d000f27840e256bf2490a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00548.html">OpenDDS::DCPS::FirstTimeFastAllocator</a>&lt;<br>
 <a class="el" href="a00645.html">OpenDDS::DCPS::ReceivedDataElement</a> *,<br>
 DEF_MAX &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#b519a21cda6b620aefb17750332524bf">default_allocator_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">the default allocator  <a href="#b519a21cda6b620aefb17750332524bf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00780.html">Ptr_Seq_Type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#a9e3b39f482dfb4a8c0b0d333f182e7a">ptrs_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">array of pointers if the sequence is supporting zero-copy reads  <a href="#a9e3b39f482dfb4a8c0b0d333f182e7a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">CORBA::ULong&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#0a0af726b547fe1d579896bb3f7407a1">sc_maximum_</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">CORBA::ULong&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#5a3f6ff761cda008953431bd35182c42">sc_length_</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">Sample_T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#c663c189019e9b8579c5a7e113bcb28a">sc_buffer_</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">CORBA::Boolean&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#b322281edc8940f94e7737ea8b52f4d7">sc_release_</a></td></tr>

<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00779.html#440a779e1a8e509042a2361c24922bdf">PrivateMemberAccess</a></td></tr>

<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00780.html">DDS_Vector</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00781.html">PrivateMemberAccess</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Only used by the FooDataReaderImpl and tests.  <a href="a00781.html#_details">More...</a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;class Sample_T, size_t DEF_MAX = DCPS_ZERO_COPY_SEQ_DEFAULT_SIZE&gt;<br>
 class TAO::DCPS::ZeroCopyDataSeq&lt; Sample_T, DEF_MAX &gt;</h3>

Provides [] operators returning sample references but it is is implemented as an "array" of pointers to the samples so they can be "loaned" to the application code.<p>
Design Goals:<ul>
<li>Provide enhanced performance known as "zero-copy" in the <a class="el" href="a01300.html">DDS</a> spec</li><li>Conform to the C++ <a class="el" href="a01299.html">CORBA</a> mapping for sequences<ul>
<li>When necessary, certain uncommon sequence operations (resize, get_buffer, replace) will cause copies. Performance impacts are noted in comments on the individual methods. </li></ul>
</li></ul>

<p>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="f3b829f608b892dc2acaaf8468e8a130"></a><!-- doxytag: member="TAO::DCPS::ZeroCopyDataSeq::Ptr_Seq_Type" ref="f3b829f608b892dc2acaaf8468e8a130" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Sample_T, size_t DEF_MAX = DCPS_ZERO_COPY_SEQ_DEFAULT_SIZE&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="a00780.html">DDS_Vector</a> <a class="el" href="a00779.html">TAO::DCPS::ZeroCopyDataSeq</a>&lt; Sample_T, DEF_MAX &gt;::<a class="el" href="a00780.html">Ptr_Seq_Type</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="4bd0147f7dcdeb381aeebead08606eb2"></a><!-- doxytag: member="TAO::DCPS::ZeroCopyDataSeq::ZeroCopyDataSeq" ref="4bd0147f7dcdeb381aeebead08606eb2" args="(CORBA::ULong maximum=0, CORBA::ULong init_size=DEF_MAX, ACE_Allocator *alloc=0)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Sample_T, size_t DEF_MAX&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">ACE_INLINE <a class="el" href="a00779.html">TAO::DCPS::ZeroCopyDataSeq</a>&lt; Sample_T, DEF_MAX &gt;::<a class="el" href="a00779.html">ZeroCopyDataSeq</a>           </td>
          <td>(</td>
          <td class="paramtype">CORBA::ULong&nbsp;</td>
          <td class="paramname"> <em>maximum</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CORBA::ULong&nbsp;</td>
          <td class="paramname"> <em>init_size</em> = <code>DEF_MAX</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00465.html">ACE_Allocator</a> *&nbsp;</td>
          <td class="paramname"> <em>alloc</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [explicit]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Construct a sequence of sample data values that supports zero-copy reads.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>maximum</em>&nbsp;</td><td>Maximum number of samples to insert into the sequence. If == 0 then use zero-copy reading. Defaults to zero hence supporting zero-copy reads/takes.</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>init_size</em>&nbsp;</td><td>Initial size of the underlying array of pointers.</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>alloc</em>&nbsp;</td><td>The allocator used to allocate the array of pointers to samples. If zero then use the default allocator.</td></tr>
  </table>
</dl>
This constructor also serves as the "maximum" ctor and default ctor in the <a class="el" href="a01299.html">CORBA</a> spec. 
</div>
</div><p>
<a class="anchor" name="93ba7af1ffd7966d75ee7d5ca8735051"></a><!-- doxytag: member="TAO::DCPS::ZeroCopyDataSeq::ZeroCopyDataSeq" ref="93ba7af1ffd7966d75ee7d5ca8735051" args="(CORBA::ULong maximum, CORBA::ULong length, Sample_T *buffer, CORBA::Boolean release=false)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Sample_T, size_t DEF_MAX&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">ACE_INLINE <a class="el" href="a00779.html">TAO::DCPS::ZeroCopyDataSeq</a>&lt; Sample_T, DEF_MAX &gt;::<a class="el" href="a00779.html">ZeroCopyDataSeq</a>           </td>
          <td>(</td>
          <td class="paramtype">CORBA::ULong&nbsp;</td>
          <td class="paramname"> <em>maximum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CORBA::ULong&nbsp;</td>
          <td class="paramname"> <em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Sample_T *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CORBA::Boolean&nbsp;</td>
          <td class="paramname"> <em>release</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -