<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.3" xml:lang="en-US">
  <compounddef id="classgr_1_1cdma_1_1chopper" kind="class" language="C++" prot="public">
    <compoundname>gr::cdma::chopper</compoundname>
    <basecompoundref prot="public" virt="virtual">gr::block</basecompoundref>
    <derivedcompoundref refid="classgr_1_1cdma_1_1chopper__impl" prot="public" virt="non-virtual">gr::cdma::chopper_impl</derivedcompoundref>
    <includes refid="chopper_8h" local="no">chopper.h</includes>
      <sectiondef kind="public-type">
      <memberdef kind="typedef" id="classgr_1_1cdma_1_1chopper_1aff1c210e2ba8e905661422d96c81d9cc" prot="public" static="no">
        <type>boost::shared_ptr&lt; <ref refid="classgr_1_1cdma_1_1chopper" kindref="compound">chopper</ref> &gt;</type>
        <definition>typedef boost::shared_ptr&lt;chopper&gt; gr::cdma::chopper::sptr</definition>
        <argsstring></argsstring>
        <name>sptr</name>
        <qualifiedname>gr::cdma::chopper::sptr</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_science_gr-cdma/gr37-cdma/work/anastas-gr-cdma-91067d7/include/cdma/chopper.h" line="62" column="33" bodyfile="/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_science_gr-cdma/gr37-cdma/work/anastas-gr-cdma-91067d7/include/cdma/chopper.h" bodystart="62" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-static-func">
      <memberdef kind="function" id="classgr_1_1cdma_1_1chopper_1adf659553f9ae9c8a07af9c6124aefea2" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="classgr_1_1cdma_1_1chopper_1aff1c210e2ba8e905661422d96c81d9cc" kindref="member">sptr</ref></type>
        <definition>static sptr gr::cdma::chopper::make</definition>
        <argsstring>(int length_out, int length_in, size_t vector_length)</argsstring>
        <name>make</name>
        <qualifiedname>gr::cdma::chopper::make</qualifiedname>
        <param>
          <type>int</type>
          <declname>length_out</declname>
        </param>
        <param>
          <type>int</type>
          <declname>length_in</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>vector_length</declname>
        </param>
        <briefdescription>
<para>Return a shared_ptr to a new instance of <ref refid="classgr_1_1cdma_1_1chopper" kindref="compound">cdma::chopper</ref>. </para>
        </briefdescription>
        <detaileddescription>
<para>To avoid accidental use of raw pointers, <ref refid="classgr_1_1cdma_1_1chopper" kindref="compound">cdma::chopper</ref>&apos;s constructor is in a private implementation class. <ref refid="classgr_1_1cdma_1_1chopper_1adf659553f9ae9c8a07af9c6124aefea2" kindref="member">cdma::chopper::make</ref> is the public interface for creating new instances.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>vector_length</parametername>
</parameternamelist>
<parameterdescription>
<para>size of input item in data stream </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>length_in</parametername>
</parameternamelist>
<parameterdescription>
<para>number of items chopper consumes per chop. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>length_out</parametername>
</parameternamelist>
<parameterdescription>
<para>number of items chopper outputs per chop. Typically length out&gt;=length in. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_science_gr-cdma/gr37-cdma/work/anastas-gr-cdma-91067d7/include/cdma/chopper.h" line="77" column="19"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Chop the input data stream according to the flags in the input control stream. </para>
    </briefdescription>
    <detaileddescription>
<para>When flag is detected in the control stream, the chopper start to chop. The chopper outputs a copy of length_out items from the input stream to the output stream per chop.<linebreak/>
The chopper consumes length_in items from the input and control streams.<linebreak/>
Typically the flags are periodic and length_out&gt;=length_in. Therefore, there exist three cases.<linebreak/>
Case 1: period &lt;= length_in &lt;= length_out <linebreak/>
For example, with length_in=4, length_out=5, period=3, the input and output streams will look like <linebreak/>
input:--<mdash/>&gt;abcdefghijklmn...<linebreak/>
flags:--<mdash/>&gt;10010010010010... (period=3)<linebreak/>
outputs:--&gt;abcdeghijkmn...<linebreak/>
<linebreak/>
Case 2: length_in &lt;= period &lt;= length_out <linebreak/>
For example, with length_in=4, length_out=6, period=5, the input and output streams will look like <linebreak/>
input:--<mdash/>&gt;abcdefghijklmn...<linebreak/>
flags:--<mdash/>&gt;100001000010000... (period=5)<linebreak/>
outputs:--&gt;abcdeffghijkklmnop...<linebreak/>
<linebreak/>
Case 3: length_in &lt;=length_out &lt;= period <linebreak/>
For example, with length_in=4, length_out=6, period=7, the input and output streams will look like <linebreak/>
input:--<mdash/>&gt;abcdefghijklmnopqrst...<linebreak/>
flags:--<mdash/>&gt;100000010000001000000...(periold=7) <linebreak/>
outputs:--&gt;abcdefhijklmonqrst...<linebreak/>
</para>
    </detaileddescription>
    <inheritancegraph>
      <node id="2">
        <label>gr::block</label>
      </node>
      <node id="1">
        <label>gr::cdma::chopper</label>
        <link refid="classgr_1_1cdma_1_1chopper"/>
        <childnode refid="2" relation="public-inheritance">
        </childnode>
      </node>
      <node id="3">
        <label>gr::cdma::chopper_impl</label>
        <link refid="classgr_1_1cdma_1_1chopper__impl"/>
        <childnode refid="1" relation="public-inheritance">
        </childnode>
      </node>
    </inheritancegraph>
    <collaborationgraph>
      <node id="2">
        <label>gr::block</label>
      </node>
      <node id="1">
        <label>gr::cdma::chopper</label>
        <link refid="classgr_1_1cdma_1_1chopper"/>
        <childnode refid="2" relation="public-inheritance">
        </childnode>
      </node>
    </collaborationgraph>
    <location file="/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_science_gr-cdma/gr37-cdma/work/anastas-gr-cdma-91067d7/include/cdma/chopper.h" line="59" column="5" bodyfile="/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_science_gr-cdma/gr37-cdma/work/anastas-gr-cdma-91067d7/include/cdma/chopper.h" bodystart="60" bodyend="78"/>
    <listofallmembers>
      <member refid="classgr_1_1cdma_1_1chopper_1adf659553f9ae9c8a07af9c6124aefea2" prot="public" virt="non-virtual"><scope>gr::cdma::chopper</scope><name>make</name></member>
      <member refid="classgr_1_1cdma_1_1chopper_1aff1c210e2ba8e905661422d96c81d9cc" prot="public" virt="non-virtual"><scope>gr::cdma::chopper</scope><name>sptr</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
