<?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="pimpl_8h" kind="file" language="C++">
    <compoundname>pimpl.h</compoundname>
    <includes local="no">memory</includes>
    <includedby refid="device_8h" local="no">device.h</includedby>
    <includedby refid="ranges_8h" local="no">ranges.h</includedby>
    <incdepgraph>
      <node id="1">
        <label>pimpl.h</label>
        <link refid="pimpl_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="2">
        <label>memory</label>
      </node>
    </incdepgraph>
    <invincdepgraph>
      <node id="2">
        <label>device.h</label>
        <link refid="device_8h"/>
      </node>
      <node id="1">
        <label>pimpl.h</label>
        <link refid="pimpl_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
        <childnode refid="3" relation="include">
        </childnode>
      </node>
      <node id="3">
        <label>ranges.h</label>
        <link refid="ranges_8h"/>
        <childnode refid="4" relation="include">
        </childnode>
        <childnode refid="5" relation="include">
        </childnode>
        <childnode refid="6" relation="include">
        </childnode>
        <childnode refid="7" relation="include">
        </childnode>
        <childnode refid="8" relation="include">
        </childnode>
        <childnode refid="9" relation="include">
        </childnode>
        <childnode refid="10" relation="include">
        </childnode>
        <childnode refid="13" relation="include">
        </childnode>
        <childnode refid="14" relation="include">
        </childnode>
        <childnode refid="15" relation="include">
        </childnode>
        <childnode refid="17" relation="include">
        </childnode>
        <childnode refid="23" relation="include">
        </childnode>
        <childnode refid="20" relation="include">
        </childnode>
        <childnode refid="24" relation="include">
        </childnode>
        <childnode refid="25" relation="include">
        </childnode>
        <childnode refid="27" relation="include">
        </childnode>
      </node>
      <node id="15">
        <label>sink.h</label>
        <link refid="sink_8h"/>
        <childnode refid="16" relation="include">
        </childnode>
      </node>
      <node id="25">
        <label>source.h</label>
        <link refid="source_8h"/>
        <childnode refid="26" relation="include">
        </childnode>
      </node>
      <node id="28">
        <label>airspy_source_c.h</label>
        <link refid="airspy__source__c_8h"/>
      </node>
      <node id="29">
        <label>airspyhf_source_c.h</label>
        <link refid="airspyhf__source__c_8h"/>
      </node>
      <node id="4">
        <label>bladerf_common.h</label>
        <link refid="bladerf__common_8h"/>
        <childnode refid="5" relation="include">
        </childnode>
        <childnode refid="6" relation="include">
        </childnode>
      </node>
      <node id="5">
        <label>bladerf_sink_c.h</label>
        <link refid="bladerf__sink__c_8h"/>
      </node>
      <node id="6">
        <label>bladerf_source_c.h</label>
        <link refid="bladerf__source__c_8h"/>
      </node>
      <node id="30">
        <label>fcd_source_c.h</label>
        <link refid="fcd__source__c_8h"/>
      </node>
      <node id="18">
        <label>file_sink_c.h</label>
        <link refid="file__sink__c_8h"/>
      </node>
      <node id="31">
        <label>file_source_c.h</label>
        <link refid="file__source__c_8h"/>
      </node>
      <node id="7">
        <label>freesrp_common.h</label>
        <link refid="freesrp__common_8h"/>
        <childnode refid="8" relation="include">
        </childnode>
        <childnode refid="9" relation="include">
        </childnode>
      </node>
      <node id="8">
        <label>freesrp_sink_c.h</label>
        <link refid="freesrp__sink__c_8h"/>
      </node>
      <node id="9">
        <label>freesrp_source_c.h</label>
        <link refid="freesrp__source__c_8h"/>
      </node>
      <node id="10">
        <label>hackrf_common.h</label>
        <link refid="hackrf__common_8h"/>
        <childnode refid="11" relation="include">
        </childnode>
        <childnode refid="12" relation="include">
        </childnode>
      </node>
      <node id="11">
        <label>hackrf_sink_c.h</label>
        <link refid="hackrf__sink__c_8h"/>
      </node>
      <node id="12">
        <label>hackrf_source_c.h</label>
        <link refid="hackrf__source__c_8h"/>
      </node>
      <node id="32">
        <label>miri_source_c.h</label>
        <link refid="miri__source__c_8h"/>
      </node>
      <node id="19">
        <label>redpitaya_sink_c.h</label>
        <link refid="redpitaya__sink__c_8h"/>
      </node>
      <node id="33">
        <label>redpitaya_source_c.h</label>
        <link refid="redpitaya__source__c_8h"/>
      </node>
      <node id="13">
        <label>rfspace_source_c.h</label>
        <link refid="rfspace__source__c_8h"/>
      </node>
      <node id="34">
        <label>rtl_source_c.h</label>
        <link refid="rtl__source__c_8h"/>
      </node>
      <node id="35">
        <label>rtl_tcp_source_c.h</label>
        <link refid="rtl__tcp__source__c_8h"/>
      </node>
      <node id="14">
        <label>sdrplay_source_c.h</label>
        <link refid="sdrplay__source__c_8h"/>
      </node>
      <node id="17">
        <label>sink_iface.h</label>
        <link refid="sink__iface_8h"/>
        <childnode refid="5" relation="include">
        </childnode>
        <childnode refid="18" relation="include">
        </childnode>
        <childnode refid="8" relation="include">
        </childnode>
        <childnode refid="11" relation="include">
        </childnode>
        <childnode refid="19" relation="include">
        </childnode>
        <childnode refid="16" relation="include">
        </childnode>
        <childnode refid="20" relation="include">
        </childnode>
        <childnode refid="21" relation="include">
        </childnode>
        <childnode refid="22" relation="include">
        </childnode>
      </node>
      <node id="16">
        <label>sink_impl.h</label>
        <link refid="sink__impl_8h"/>
      </node>
      <node id="23">
        <label>soapy_common.h</label>
        <link refid="soapy__common_8h"/>
      </node>
      <node id="20">
        <label>soapy_sink_c.h</label>
        <link refid="soapy__sink__c_8h"/>
      </node>
      <node id="24">
        <label>soapy_source_c.h</label>
        <link refid="soapy__source__c_8h"/>
      </node>
      <node id="27">
        <label>source_iface.h</label>
        <link refid="source__iface_8h"/>
        <childnode refid="28" relation="include">
        </childnode>
        <childnode refid="29" relation="include">
        </childnode>
        <childnode refid="6" relation="include">
        </childnode>
        <childnode refid="30" relation="include">
        </childnode>
        <childnode refid="31" relation="include">
        </childnode>
        <childnode refid="9" relation="include">
        </childnode>
        <childnode refid="12" relation="include">
        </childnode>
        <childnode refid="32" relation="include">
        </childnode>
        <childnode refid="33" relation="include">
        </childnode>
        <childnode refid="13" relation="include">
        </childnode>
        <childnode refid="34" relation="include">
        </childnode>
        <childnode refid="35" relation="include">
        </childnode>
        <childnode refid="14" relation="include">
        </childnode>
        <childnode refid="24" relation="include">
        </childnode>
        <childnode refid="26" relation="include">
        </childnode>
        <childnode refid="36" relation="include">
        </childnode>
        <childnode refid="37" relation="include">
        </childnode>
      </node>
      <node id="26">
        <label>source_impl.h</label>
        <link refid="source__impl_8h"/>
      </node>
      <node id="21">
        <label>uhd_sink_c.h</label>
        <link refid="uhd__sink__c_8h"/>
      </node>
      <node id="36">
        <label>uhd_source_c.h</label>
        <link refid="uhd__source__c_8h"/>
      </node>
      <node id="22">
        <label>xtrx_sink_c.h</label>
        <link refid="xtrx__sink__c_8h"/>
      </node>
      <node id="37">
        <label>xtrx_source_c.h</label>
        <link refid="xtrx__source__c_8h"/>
      </node>
    </invincdepgraph>
      <sectiondef kind="define">
      <memberdef kind="define" id="pimpl_8h_1adf43fb5bf39a048a292f08aa4e6386e7" prot="public" static="no">
        <name>OSMOSDR_PIMPL_DECL</name>
        <param><defname>_name</defname></param>
        <initializer>    struct _name; std::shared_ptr&lt;_name&gt;</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Make a declaration for a pimpl in a header file.<itemizedlist>
<listitem><para>Usage: <ref refid="pimpl_8h_1adf43fb5bf39a048a292f08aa4e6386e7" kindref="member">OSMOSDR_PIMPL_DECL(impl)</ref> _impl; <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>_name</parametername>
</parameternamelist>
<parameterdescription>
<para>the name of the pimpl class </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
</listitem></itemizedlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/tmp/slackdce/slackrepo.jk4nph/build_gr-osmosdr/gr-osmosdr-20240515_a6afeaa/include/osmosdr/pimpl.h" line="41" column="9" bodyfile="/tmp/slackdce/slackrepo.jk4nph/build_gr-osmosdr/gr-osmosdr-20240515_a6afeaa/include/osmosdr/pimpl.h" bodystart="41" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="pimpl_8h_1a2b855ccb8c14a3f29abac8dad91f8d57" prot="public" static="no">
        <name>OSMOSDR_PIMPL_MAKE</name>
        <param><defname>_name</defname></param>
        <param><defname>_args</defname></param>
        <initializer>    std::shared_ptr&lt;_name&gt;(new _name _args)</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Make an instance of a pimpl in a source file.<itemizedlist>
<listitem><para>Usage: _impl = <ref refid="pimpl_8h_1a2b855ccb8c14a3f29abac8dad91f8d57" kindref="member">OSMOSDR_PIMPL_MAKE(impl, ())</ref>;</para>
</listitem><listitem><para>Usage: _impl = <ref refid="pimpl_8h_1a2b855ccb8c14a3f29abac8dad91f8d57" kindref="member">OSMOSDR_PIMPL_MAKE(impl, (a0, a1))</ref>; <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>_name</parametername>
</parameternamelist>
<parameterdescription>
<para>the name of the pimpl class </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>_args</parametername>
</parameternamelist>
<parameterdescription>
<para>the constructor args for the pimpl </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
</listitem></itemizedlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/tmp/slackdce/slackrepo.jk4nph/build_gr-osmosdr/gr-osmosdr-20240515_a6afeaa/include/osmosdr/pimpl.h" line="51" column="9" bodyfile="/tmp/slackdce/slackrepo.jk4nph/build_gr-osmosdr/gr-osmosdr-20240515_a6afeaa/include/osmosdr/pimpl.h" bodystart="51" bodyend="-1"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
<para>&quot;Pimpl idiom&quot; (pointer to implementation idiom). The OSMOSDR_PIMPL_* macros simplify code overhead for declaring and making pimpls.</para>
<para>Each pimpl is implemented as a shared pointer to the implementation:<itemizedlist>
<listitem><para>The container class will not have to deallocate the pimpl.</para>
</listitem><listitem><para>The container class will use the pimpl as a regular pointer.</para>
</listitem><listitem><para>Usage: _impl-&gt;method(arg0, arg1)</para>
</listitem><listitem><para>Usage: _impl-&gt;member = value;</para>
</listitem></itemizedlist>
</para>
<para><simplesect kind="see"><para><ulink url="http://en.wikipedia.org/wiki/Opaque_pointer">http://en.wikipedia.org/wiki/Opaque_pointer</ulink> </para>
</simplesect>
</para>
    </detaileddescription>
    <location file="/tmp/slackdce/slackrepo.jk4nph/build_gr-osmosdr/gr-osmosdr-20240515_a6afeaa/include/osmosdr/pimpl.h"/>
  </compounddef>
</doxygen>
