<?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.7.3"> <compounddef id="classmb__mblock" kind="class" prot="public"> <compoundname>mb_mblock</compoundname> <includes refid="mblock_8h" local="no">mblock.h</includes> <sectiondef kind="private-attrib"> <memberdef kind="variable" id="classmb__mblock_1ab5d9b748e1a07590d34e05c163e62eeb" prot="private" static="no" mutable="no"> <type><ref refid="classboost_1_1shared__ptr" kindref="compound">mb_mblock_impl_sptr</ref></type> <definition>mb_mblock_impl_sptr mb_mblock::d_impl</definition> <argsstring></argsstring> <name>d_impl</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="52" bodyfile="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" bodystart="52" bodyend="-1"/> </memberdef> </sectiondef> <sectiondef kind="friend"> <memberdef kind="friend" id="classmb__mblock_1aad09a593a1585ff8851fe55811bf88fe" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>friend class</type> <definition>friend class mb_runtime</definition> <argsstring></argsstring> <name>mb_runtime</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="54" bodyfile="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" bodystart="54" bodyend="-1"/> </memberdef> <memberdef kind="friend" id="classmb__mblock_1ac7e9d347deac80b4fe67cc2ddf33d707" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>friend class</type> <definition>friend class mb_mblock_impl</definition> <argsstring></argsstring> <name>mb_mblock_impl</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="55" bodyfile="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" bodystart="55" bodyend="-1"/> </memberdef> <memberdef kind="friend" id="classmb__mblock_1a639baa2ef8eae99412296b2dbbef71a9" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>friend class</type> <definition>friend class mb_worker</definition> <argsstring></argsstring> <name>mb_worker</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="56" bodyfile="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" bodystart="56" bodyend="-1"/> </memberdef> </sectiondef> <sectiondef kind="protected-func"> <memberdef kind="function" id="classmb__mblock_1a83c87a06b23082a4d076eaf8f437434c" prot="protected" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type></type> <definition>mb_mblock::mb_mblock</definition> <argsstring>(mb_runtime *runtime, const std::string &instance_name, pmt_t user_arg)</argsstring> <name>mb_mblock</name> <param> <type><ref refid="classmb__runtime" kindref="compound">mb_runtime</ref> *</type> <declname>runtime</declname> </param> <param> <type>const std::string &</type> <declname>instance_name</declname> </param> <param> <type><ref refid="classboost_1_1shared__ptr" kindref="compound">pmt_t</ref></type> <declname>user_arg</declname> </param> <briefdescription> <para>mblock constructor. </para> </briefdescription> <detaileddescription> <para>Initializing all mblocks in the system is a 3 step procedure.</para><para>The top level mblock's constructor is run. That constructor (a) registers all of its ports using define_port, (b) registers any subcomponents it may have via the define_component method, and then (c) issues connect calls to wire its subcomponents together.</para><para><parameterlist kind="param"><parameteritem> <parameternamelist> <parametername>runtime</parametername> </parameternamelist> <parameterdescription> <para>the runtime associated with this mblock </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>instance_name</parametername> </parameternamelist> <parameterdescription> <para>specify the name of this instance (for debugging, NUMA mapping, etc) </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>user_arg</parametername> </parameternamelist> <parameterdescription> <para>argument passed by user to constructor (ignored by the <ref refid="classmb__mblock" kindref="compound">mb_mblock</ref> base class) </para></parameterdescription> </parameteritem> </parameterlist> </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="75"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1a5f96d36f950607b82a12b1b1b8d82a87" prot="protected" static="no" const="no" explicit="no" inline="no" virt="virtual"> <type>void</type> <definition>virtual void mb_mblock::handle_message</definition> <argsstring>(mb_message_sptr msg)</argsstring> <name>handle_message</name> <param> <type><ref refid="classboost_1_1shared__ptr" kindref="compound">mb_message_sptr</ref></type> <declname>msg</declname> </param> <briefdescription> <para>Called by the runtime system when there's a message to handle. </para> </briefdescription> <detaileddescription> <para>Override this to define your behavior.</para><para>Do not issue any potentially blocking calls in this method. This includes things such reads or writes on sockets, pipes or slow i/o devices. </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="98"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1a47b1aa472fa25822b169a1a780706cc9" prot="protected" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type><ref refid="classboost_1_1shared__ptr" kindref="compound">mb_port_sptr</ref></type> <definition>mb_port_sptr mb_mblock::define_port</definition> <argsstring>(const std::string &port_name, const std::string &protocol_class_name, bool conjugated, mb_port::port_type_t port_type)</argsstring> <name>define_port</name> <param> <type>const std::string &</type> <declname>port_name</declname> </param> <param> <type>const std::string &</type> <declname>protocol_class_name</declname> </param> <param> <type><ref refid="gc__types_8h_1a0f2b5d454b7e4dda3861032cfce91085" kindref="member">bool</ref></type> <declname>conjugated</declname> </param> <param> <type><ref refid="classmb__port_1ab7f3f63c496d0de66461f09320bbaaa7" kindref="member">mb_port::port_type_t</ref></type> <declname>port_type</declname> </param> <briefdescription> <para>Define a port. </para> </briefdescription> <detaileddescription> <para>EXTERNAL and RELAY ports are part of our peer interface. INTERNAL ports are used to talk to sub-components.</para><para><parameterlist kind="param"><parameteritem> <parameternamelist> <parametername>port_name</parametername> </parameternamelist> <parameterdescription> <para>The name of the port (must be unique within this mblock). </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>protocol_class_name</parametername> </parameternamelist> <parameterdescription> <para>The name of the protocol class associated with this port. It must already be defined. </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>conjugated</parametername> </parameternamelist> <parameterdescription> <para>Are the incoming and outgoing message sets swapped? </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>port_type</parametername> </parameternamelist> <parameterdescription> <para>INTERNAL, EXTERNAL or RELAY. </para></parameterdescription> </parameteritem> </parameterlist> </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="116"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1ac560e9e981bc13874c57fe753870e3a1" prot="protected" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void mb_mblock::define_component</definition> <argsstring>(const std::string &component_name, const std::string &class_name, pmt_t user_arg=PMT_NIL)</argsstring> <name>define_component</name> <param> <type>const std::string &</type> <declname>component_name</declname> </param> <param> <type>const std::string &</type> <declname>class_name</declname> </param> <param> <type><ref refid="classboost_1_1shared__ptr" kindref="compound">pmt_t</ref></type> <declname>user_arg</declname> <defval><ref refid="pmt_8h_1aba0945ac11683535c229c6047c21c523" kindref="member">PMT_NIL</ref></defval> </param> <briefdescription> <para>Define a subcomponent by name. </para> </briefdescription> <detaileddescription> <para>Called within the constructor to tell the system the names and identities of our sub-component mblocks.</para><para><parameterlist kind="param"><parameteritem> <parameternamelist> <parametername>component_name</parametername> </parameternamelist> <parameterdescription> <para>The name of the sub-component (must be unique with this mblock). </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>class_name</parametername> </parameternamelist> <parameterdescription> <para>The class of the instance that is to be created. </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>user_arg</parametername> </parameternamelist> <parameterdescription> <para>The argument to pass to the constructor of the component. </para></parameterdescription> </parameteritem> </parameterlist> </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="131"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1a0800477701715dd006d87f3d807f55c1" prot="protected" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void mb_mblock::connect</definition> <argsstring>(const std::string &comp_name1, const std::string &port_name1, const std::string &comp_name2, const std::string &port_name2)</argsstring> <name>connect</name> <param> <type>const std::string &</type> <declname>comp_name1</declname> </param> <param> <type>const std::string &</type> <declname>port_name1</declname> </param> <param> <type>const std::string &</type> <declname>comp_name2</declname> </param> <param> <type>const std::string &</type> <declname>port_name2</declname> </param> <briefdescription> <para>connect endpoint_1 to endpoint_2 </para> </briefdescription> <detaileddescription> <para><parameterlist kind="param"><parameteritem> <parameternamelist> <parametername>comp_name1</parametername> </parameternamelist> <parameterdescription> <para>component on one end of the connection </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>port_name1</parametername> </parameternamelist> <parameterdescription> <para>the name of the port on comp1 </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>comp_name2</parametername> </parameternamelist> <parameterdescription> <para>component on the other end of the connection </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>port_name2</parametername> </parameternamelist> <parameterdescription> <para>the name of the port on comp2</para></parameterdescription> </parameteritem> </parameterlist> An endpoint is specified by the component's local name (given as component_name in the call to register_component) and the name of the port on that component.</para><para>To connect an internal or relay port, use "self" as the component name. </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="149"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1a500f577145bd9a5afc33203ba0a61cd6" prot="protected" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void mb_mblock::disconnect</definition> <argsstring>(const std::string &comp_name1, const std::string &port_name1, const std::string &comp_name2, const std::string &port_name2)</argsstring> <name>disconnect</name> <param> <type>const std::string &</type> <declname>comp_name1</declname> </param> <param> <type>const std::string &</type> <declname>port_name1</declname> </param> <param> <type>const std::string &</type> <declname>comp_name2</declname> </param> <param> <type>const std::string &</type> <declname>port_name2</declname> </param> <briefdescription> <para>disconnect endpoint_1 from endpoint_2 </para> </briefdescription> <detaileddescription> <para><parameterlist kind="param"><parameteritem> <parameternamelist> <parametername>comp_name1</parametername> </parameternamelist> <parameterdescription> <para>component on one end of the connection </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>port_name1</parametername> </parameternamelist> <parameterdescription> <para>the name of the port on comp1 </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>comp_name2</parametername> </parameternamelist> <parameterdescription> <para>component on the other end of the connection </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>port_name2</parametername> </parameternamelist> <parameterdescription> <para>the name of the port on comp2</para></parameterdescription> </parameteritem> </parameterlist> An endpoint is specified by the component's local name (given as component_name in the call to register_component) and the name of the port on that component.</para><para>To disconnect an internal or relay port, use "self" as the component name. </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="167"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1a2f4ca20b58c89386d6f6ac2c276646d0" prot="protected" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void mb_mblock::disconnect_component</definition> <argsstring>(const std::string &component_name)</argsstring> <name>disconnect_component</name> <param> <type>const std::string &</type> <declname>component_name</declname> </param> <briefdescription> <para>disconnect all connections to specified component </para> </briefdescription> <detaileddescription> <para><parameterlist kind="param"><parameteritem> <parameternamelist> <parametername>component_name</parametername> </parameternamelist> <parameterdescription> <para>component to disconnect </para></parameterdescription> </parameteritem> </parameterlist> </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="174"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1afbfe3e2601f9a92823690ce0a013ef9d" prot="protected" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void mb_mblock::disconnect_all</definition> <argsstring>()</argsstring> <name>disconnect_all</name> <briefdescription> <para>disconnect all connections to all components </para> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="180"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1aeb61577b8eab6672f87cf66a88814e26" prot="protected" static="no" const="yes" explicit="no" inline="no" virt="non-virtual"> <type>int</type> <definition>int mb_mblock::nconnections</definition> <argsstring>() const </argsstring> <name>nconnections</name> <briefdescription> <para>Return number of connections (QA mostly) </para> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="186"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1a10653b3e3b5f39272d028f54b96878ca" prot="protected" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void mb_mblock::set_class_name</definition> <argsstring>(const std::string &name)</argsstring> <name>set_class_name</name> <param> <type>const std::string &</type> <declname>name</declname> </param> <briefdescription> <para>Set the class name. </para> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="189"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1a6be918a924c59e55996d9e9ce1e6b4ec" prot="protected" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void mb_mblock::exit</definition> <argsstring>()</argsstring> <name>exit</name> <briefdescription> <para>Tell runtime that we are done. </para> </briefdescription> <detaileddescription> <para>This method does not return. </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="196"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1a1d9ccf70a91a04e23580408053f2fa2c" prot="protected" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void mb_mblock::shutdown_all</definition> <argsstring>(pmt_t result)</argsstring> <name>shutdown_all</name> <param> <type><ref refid="classboost_1_1shared__ptr" kindref="compound">pmt_t</ref></type> <declname>result</declname> </param> <briefdescription> <para>Ask runtime to execute the shutdown procedure for all blocks. </para> </briefdescription> <detaileddescription> <para><parameterlist kind="param"><parameteritem> <parameternamelist> <parametername>result</parametername> </parameternamelist> <parameterdescription> <para>sets value of <computeroutput>result</computeroutput> output argument of runtime->run(...)</para></parameterdescription> </parameteritem> </parameterlist> The runtime first sends a maximum priority shutdown message to all blocks. All blocks should handle the shutdown message, perform whatever clean up is required, and call this-><ref refid="classmb__mblock_1a6be918a924c59e55996d9e9ce1e6b4ec" kindref="member">exit()</ref>;</para><para>After a period of time (~100ms), any blocks which haven't yet called this-><ref refid="classmb__mblock_1a6be918a924c59e55996d9e9ce1e6b4ec" kindref="member">exit()</ref> are sent a maximum priority halt message. halt is detected in main_loop, and this-><ref refid="classmb__mblock_1a6be918a924c59e55996d9e9ce1e6b4ec" kindref="member">exit()</ref> is called.</para><para>After an additional period of time (~100ms), any blocks which still haven't yet called this-><ref refid="classmb__mblock_1a6be918a924c59e55996d9e9ce1e6b4ec" kindref="member">exit()</ref> are sent a SIG<FOO> (TBD) signal, which will blow them out of any blocking system calls and raise an <ref refid="classmbe__terminate" kindref="compound">mbe_terminate</ref> exception. The default top-level runtime-provided exception handler will call this-><ref refid="classmb__mblock_1a6be918a924c59e55996d9e9ce1e6b4ec" kindref="member">exit()</ref> to finish the process.</para><para>runtime->run(...) returns when all blocks have called exit. </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="220"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1aa9d454e5c35e31613d44dd75505064a3" prot="protected" static="no" const="no" explicit="no" inline="no" virt="virtual"> <type>void</type> <definition>virtual void mb_mblock::main_loop</definition> <argsstring>()</argsstring> <name>main_loop</name> <briefdescription> <para>main event dispatching loop </para> </briefdescription> <detaileddescription> <para>Although it is possible to override this, the default implementation should work for virtually all cases. </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="228"/> </memberdef> </sectiondef> <sectiondef kind="public-func"> <memberdef kind="function" id="classmb__mblock_1acabcfc92899739d510f65755fcebbf87" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual"> <type>void</type> <definition>virtual void mb_mblock::initial_transition</definition> <argsstring>()</argsstring> <name>initial_transition</name> <briefdescription> <para>Called by the runtime system to execute the initial transition of the finite state machine. </para> </briefdescription> <detaileddescription> <para>This method is called by the runtime after all blocks are constructed and before the first message is delivered. Override this to initialize your finite state machine. </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="86"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1a6f2b3e251032173579d5138b72290abc" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual"> <type></type> <definition>virtual mb_mblock::~mb_mblock</definition> <argsstring>()</argsstring> <name>~mb_mblock</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="231"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1a62019844e24c535f0803318b1c1d7005" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual"> <type>std::string</type> <definition>std::string mb_mblock::instance_name</definition> <argsstring>() const </argsstring> <name>instance_name</name> <briefdescription> <para>Return instance name of this block. </para> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="234"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1a1344b9a214c84b1e968f77ee098046ef" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual"> <type>std::string</type> <definition>std::string mb_mblock::class_name</definition> <argsstring>() const </argsstring> <name>class_name</name> <briefdescription> <para>Return the class name of this block. </para> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="237"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1affe51c6b003e08eb672934ff687daaca" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void mb_mblock::set_instance_name</definition> <argsstring>(const std::string &name)</argsstring> <name>set_instance_name</name> <param> <type>const std::string &</type> <declname>name</declname> </param> <briefdescription> <para>Set the instance name of this block. </para> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="240"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1aee14050f3be0aaf4c844702b0e6e294c" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual"> <type><ref refid="classmb__mblock" kindref="compound">mb_mblock</ref> *</type> <definition>mb_mblock* mb_mblock::parent</definition> <argsstring>() const </argsstring> <name>parent</name> <briefdescription> <para>Return the parent of this mblock, or 0 if we're the top-level block. </para> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="243"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1a5a39284aefb6c9216968bc1e057a504e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type><ref refid="classboost_1_1shared__ptr" kindref="compound">pmt_t</ref></type> <definition>pmt_t mb_mblock::schedule_one_shot_timeout</definition> <argsstring>(const mb_time &abs_time, pmt_t user_data)</argsstring> <name>schedule_one_shot_timeout</name> <param> <type>const <ref refid="structomni__time" kindref="compound">mb_time</ref> &</type> <declname>abs_time</declname> </param> <param> <type><ref refid="classboost_1_1shared__ptr" kindref="compound">pmt_t</ref></type> <declname>user_data</declname> </param> <briefdescription> <para>Schedule a "one shot" timeout. </para> </briefdescription> <detaileddescription> <para><parameterlist kind="param"><parameteritem> <parameternamelist> <parametername>abs_time</parametername> </parameternamelist> <parameterdescription> <para>the absolute time at which the timeout should fire </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>user_data</parametername> </parameternamelist> <parameterdescription> <para>the data passed in the timeout message.</para></parameterdescription> </parameteritem> </parameterlist> When the timeout fires, a message will be sent to the mblock.</para><para>The message will have port_id = sys-port, signal = timeout, data = user_data, metadata = the handle returned from schedule_one_shot_timeout, pri = MB_PRI_BEST.</para><para><simplesect kind="return"><para>a handle that can be used in cancel_timeout, and is passed as the metadata field of the generated timeout message.</para></simplesect> To cancel a pending timeout, call cancel_timeout. </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="263"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1a2a025f508180403844eb3a4e6a122fc9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type><ref refid="classboost_1_1shared__ptr" kindref="compound">pmt_t</ref></type> <definition>pmt_t mb_mblock::schedule_periodic_timeout</definition> <argsstring>(const mb_time &first_abs_time, const mb_time &delta_time, pmt_t user_data)</argsstring> <name>schedule_periodic_timeout</name> <param> <type>const <ref refid="structomni__time" kindref="compound">mb_time</ref> &</type> <declname>first_abs_time</declname> </param> <param> <type>const <ref refid="structomni__time" kindref="compound">mb_time</ref> &</type> <declname>delta_time</declname> </param> <param> <type><ref refid="classboost_1_1shared__ptr" kindref="compound">pmt_t</ref></type> <declname>user_data</declname> </param> <briefdescription> <para>Schedule a periodic timeout. </para> </briefdescription> <detaileddescription> <para><parameterlist kind="param"><parameteritem> <parameternamelist> <parametername>first_abs_time</parametername> </parameternamelist> <parameterdescription> <para>The absolute time at which the first timeout should fire. </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>delta_time</parametername> </parameternamelist> <parameterdescription> <para>The relative delay between the first and successive timeouts. </para></parameterdescription> </parameteritem> <parameteritem> <parameternamelist> <parametername>user_data</parametername> </parameternamelist> <parameterdescription> <para>the data passed in the timeout message.</para></parameterdescription> </parameteritem> </parameterlist> When the timeout fires, a message will be sent to the mblock, and a new timeout will be scheduled for previous absolute time + delta_time.</para><para>The message will have port_id = sys-port, signal = timeout, data = user_data, metadata = the handle returned from schedule_one_shot_timeout, pri = MB_PRI_BEST.</para><para><simplesect kind="return"><para>a handle that can be used in cancel_timeout, and is passed as the metadata field of the generated timeout message.</para></simplesect> To cancel a pending timeout, call cancel_timeout. </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="287"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1a70031b0b32a186763187892987f1798e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void mb_mblock::cancel_timeout</definition> <argsstring>(pmt_t handle)</argsstring> <name>cancel_timeout</name> <param> <type><ref refid="classboost_1_1shared__ptr" kindref="compound">pmt_t</ref></type> <declname>handle</declname> </param> <briefdescription> <para>Attempt to cancel a pending timeout. </para> </briefdescription> <detaileddescription> <para>Note that this only stops a future timeout from firing. It is possible that a timeout may have already fired and enqueued a timeout message, but that that message has not yet been seen by handle_message.</para><para><parameterlist kind="param"><parameteritem> <parameternamelist> <parametername>handle</parametername> </parameternamelist> <parameterdescription> <para>returned from schedule_one_shot_timeout or schedule_periodic_timeout. </para></parameterdescription> </parameteritem> </parameterlist> </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="299"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1ad6b767c539ecd52fd843e01638c75379" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type><ref refid="gc__types_8h_1a0f2b5d454b7e4dda3861032cfce91085" kindref="member">bool</ref></type> <definition>bool mb_mblock::walk_tree</definition> <argsstring>(mb_visitor *visitor)</argsstring> <name>walk_tree</name> <param> <type><ref refid="classmb__visitor" kindref="compound">mb_visitor</ref> *</type> <declname>visitor</declname> </param> <briefdescription> <para>Perform a pre-order depth-first traversal of the hierarchy. </para> </briefdescription> <detaileddescription> <para>The traversal stops and returns false if any call to visitor returns false. </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="307"/> </memberdef> <memberdef kind="function" id="classmb__mblock_1a6db8b3246c9d2d862bd20876ffe9a16d" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual"> <type><ref refid="classboost_1_1shared__ptr" kindref="compound">mb_mblock_impl_sptr</ref></type> <definition>mb_mblock_impl_sptr mb_mblock::impl</definition> <argsstring>() const </argsstring> <name>impl</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="313" bodyfile="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" bodystart="313" bodyend="313"/> </memberdef> </sectiondef> <briefdescription> <para>Parent class for all message passing blocks. </para> </briefdescription> <detaileddescription> <para>Subclass this to define your mblocks. </para> </detaileddescription> <collaborationgraph> <node id="15033"> <label>T</label> </node> <node id="15025"> <label>mb_runtime_base</label> <link refid="classmb__runtime__base"/> <childnode refid="15026" relation="public-inheritance"> </childnode> <childnode refid="15028" relation="usage"> <edgelabel>d_accepter</edgelabel> </childnode> <childnode refid="15024" relation="usage"> <edgelabel>d_brl</edgelabel> </childnode> </node> <node id="15021"> <label>boost::shared_ptr< mb_message ></label> <link refid="classboost_1_1shared__ptr"/> <childnode refid="15022" relation="usage"> <edgelabel>px</edgelabel> </childnode> </node> <node id="15031"> <label>std::map< std::string, mb_port_sptr ></label> <childnode refid="15032" relation="usage"> <edgelabel>elements</edgelabel> </childnode> <childnode refid="15017" relation="usage"> <edgelabel>keys</edgelabel> </childnode> </node> <node id="15022"> <label>mb_message</label> <link refid="classmb__message"/> <childnode refid="15021" relation="usage"> <edgelabel>d_next</edgelabel> </childnode> <childnode refid="15015" relation="usage"> <edgelabel>d_port_id</edgelabel> <edgelabel>d_data</edgelabel> <edgelabel>d_metadata</edgelabel> <edgelabel>d_signal</edgelabel> </childnode> </node> <node id="15032"> <label>boost::shared_ptr< T ></label> <link refid="classboost_1_1shared__ptr"/> <childnode refid="15033" relation="usage"> <edgelabel>px</edgelabel> </childnode> </node> <node id="15026"> <label>mb_runtime</label> <link refid="classmb__runtime"/> <childnode refid="15027" relation="usage"> <edgelabel>d_top</edgelabel> </childnode> </node> <node id="15008"> <label>mb_mblock_impl</label> <link refid="classmb__mblock__impl"/> <childnode refid="15009" relation="usage"> <edgelabel>d_conn_table</edgelabel> </childnode> <childnode refid="15019" relation="usage"> <edgelabel>d_msgq</edgelabel> </childnode> <childnode refid="15006" relation="usage"> <edgelabel>d_mb</edgelabel> <edgelabel>d_mb_parent</edgelabel> </childnode> <childnode refid="15025" relation="usage"> <edgelabel>d_runtime</edgelabel> </childnode> <childnode refid="15017" relation="usage"> <edgelabel>d_class_name</edgelabel> <edgelabel>d_instance_name</edgelabel> </childnode> <childnode refid="15030" relation="usage"> <edgelabel>d_comp_map</edgelabel> </childnode> <childnode refid="15031" relation="usage"> <edgelabel>d_port_map</edgelabel> </childnode> </node> <node id="15014"> <label>mb_port</label> <link refid="classmb__port"/> <childnode refid="15006" relation="usage"> <edgelabel>d_mblock</edgelabel> </childnode> <childnode refid="15015" relation="usage"> <edgelabel>d_protocol_class</edgelabel> <edgelabel>d_port_symbol</edgelabel> </childnode> <childnode refid="15017" relation="usage"> <edgelabel>d_port_name</edgelabel> </childnode> </node> <node id="15027"> <label>boost::shared_ptr< mb_mblock ></label> <link refid="classboost_1_1shared__ptr"/> <childnode refid="15006" relation="usage"> <edgelabel>px</edgelabel> </childnode> </node> <node id="15012"> <label>mb_endpoint</label> <link refid="classmb__endpoint"/> <childnode refid="15013" relation="usage"> <edgelabel>d_port</edgelabel> </childnode> <childnode refid="15017" relation="usage"> <edgelabel>d_component_name</edgelabel> <edgelabel>d_port_name</edgelabel> </childnode> </node> <node id="15011"> <label>mb_connection</label> <link refid="structmb__connection"/> <childnode refid="15012" relation="usage"> <edgelabel>d_ep</edgelabel> </childnode> </node> <node id="15018"> <label>std::basic_string< char ></label> </node> <node id="15006"> <label>mb_mblock</label> <link refid="classmb__mblock"/> <childnode refid="15007" relation="usage"> <edgelabel>d_impl</edgelabel> </childnode> </node> <node id="15020"> <label>mb_msg_queue::subq</label> <childnode refid="15021" relation="usage"> <edgelabel>head</edgelabel> <edgelabel>tail</edgelabel> </childnode> </node> <node id="15013"> <label>boost::shared_ptr< mb_port ></label> <link refid="classboost_1_1shared__ptr"/> <childnode refid="15014" relation="usage"> <edgelabel>px</edgelabel> </childnode> </node> <node id="15009"> <label>mb_conn_table</label> <link refid="classmb__conn__table"/> <childnode refid="15010" relation="usage"> <edgelabel>d_connections</edgelabel> </childnode> </node> <node id="15028"> <label>boost::shared_ptr< mb_msg_accepter ></label> <link refid="classboost_1_1shared__ptr"/> <childnode refid="15029" relation="usage"> <edgelabel>px</edgelabel> </childnode> </node> <node id="15015"> <label>boost::shared_ptr< pmt_base ></label> <link refid="classboost_1_1shared__ptr"/> <childnode refid="15016" relation="usage"> <edgelabel>px</edgelabel> </childnode> </node> <node id="15016"> <label>pmt_base</label> <link refid="classpmt__base"/> </node> <node id="15019"> <label>mb_msg_queue</label> <link refid="classmb__msg__queue"/> <childnode refid="15020" relation="usage"> <edgelabel>d_queue</edgelabel> </childnode> <childnode refid="15023" relation="usage"> <edgelabel>d_not_empty</edgelabel> </childnode> <childnode refid="15024" relation="usage"> <edgelabel>d_mutex</edgelabel> </childnode> </node> <node id="15023"> <label>omni_condition</label> <link refid="classomni__condition"/> <childnode refid="15024" relation="usage"> <edgelabel>mutex</edgelabel> </childnode> </node> <node id="15030"> <label>std::map< std::string, mb_mblock_sptr ></label> <childnode refid="15027" relation="usage"> <edgelabel>elements</edgelabel> </childnode> <childnode refid="15017" relation="usage"> <edgelabel>keys</edgelabel> </childnode> </node> <node id="15007"> <label>boost::shared_ptr< mb_mblock_impl ></label> <link refid="classboost_1_1shared__ptr"/> <childnode refid="15008" relation="usage"> <edgelabel>px</edgelabel> </childnode> </node> <node id="15029"> <label>mb_msg_accepter</label> <link refid="classmb__msg__accepter"/> </node> <node id="15010"> <label>std::list< mb_connection ></label> <childnode refid="15011" relation="usage"> <edgelabel>elements</edgelabel> </childnode> </node> <node id="15017"> <label>std::string</label> <childnode refid="15018" relation="public-inheritance"> </childnode> </node> <node id="15024"> <label>omni_mutex</label> <link refid="classomni__mutex"/> </node> </collaborationgraph> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" line="50" bodyfile="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/include/mblock/mblock.h" bodystart="48" bodyend="315"/> <listofallmembers> <member refid="classmb__mblock_1a70031b0b32a186763187892987f1798e" prot="public" virt="non-virtual"><scope>mb_mblock</scope><name>cancel_timeout</name></member> <member refid="classmb__mblock_1a1344b9a214c84b1e968f77ee098046ef" prot="public" virt="non-virtual"><scope>mb_mblock</scope><name>class_name</name></member> <member refid="classmb__mblock_1a0800477701715dd006d87f3d807f55c1" prot="protected" virt="non-virtual"><scope>mb_mblock</scope><name>connect</name></member> <member refid="classmb__mblock_1ab5d9b748e1a07590d34e05c163e62eeb" prot="private" virt="non-virtual"><scope>mb_mblock</scope><name>d_impl</name></member> <member refid="classmb__mblock_1ac560e9e981bc13874c57fe753870e3a1" prot="protected" virt="non-virtual"><scope>mb_mblock</scope><name>define_component</name></member> <member refid="classmb__mblock_1a47b1aa472fa25822b169a1a780706cc9" prot="protected" virt="non-virtual"><scope>mb_mblock</scope><name>define_port</name></member> <member refid="classmb__mblock_1a500f577145bd9a5afc33203ba0a61cd6" prot="protected" virt="non-virtual"><scope>mb_mblock</scope><name>disconnect</name></member> <member refid="classmb__mblock_1afbfe3e2601f9a92823690ce0a013ef9d" prot="protected" virt="non-virtual"><scope>mb_mblock</scope><name>disconnect_all</name></member> <member refid="classmb__mblock_1a2f4ca20b58c89386d6f6ac2c276646d0" prot="protected" virt="non-virtual"><scope>mb_mblock</scope><name>disconnect_component</name></member> <member refid="classmb__mblock_1a6be918a924c59e55996d9e9ce1e6b4ec" prot="protected" virt="non-virtual"><scope>mb_mblock</scope><name>exit</name></member> <member refid="classmb__mblock_1a5f96d36f950607b82a12b1b1b8d82a87" prot="protected" virt="virtual"><scope>mb_mblock</scope><name>handle_message</name></member> <member refid="classmb__mblock_1a6db8b3246c9d2d862bd20876ffe9a16d" prot="public" virt="non-virtual"><scope>mb_mblock</scope><name>impl</name></member> <member refid="classmb__mblock_1acabcfc92899739d510f65755fcebbf87" prot="public" virt="virtual"><scope>mb_mblock</scope><name>initial_transition</name></member> <member refid="classmb__mblock_1a62019844e24c535f0803318b1c1d7005" prot="public" virt="non-virtual"><scope>mb_mblock</scope><name>instance_name</name></member> <member refid="classmb__mblock_1aa9d454e5c35e31613d44dd75505064a3" prot="protected" virt="virtual"><scope>mb_mblock</scope><name>main_loop</name></member> <member refid="classmb__mblock_1a83c87a06b23082a4d076eaf8f437434c" prot="protected" virt="non-virtual"><scope>mb_mblock</scope><name>mb_mblock</name></member> <member refid="classmb__mblock_1ac7e9d347deac80b4fe67cc2ddf33d707" prot="private" virt="non-virtual"><scope>mb_mblock</scope><name>mb_mblock_impl</name></member> <member refid="classmb__mblock_1aad09a593a1585ff8851fe55811bf88fe" prot="private" virt="non-virtual"><scope>mb_mblock</scope><name>mb_runtime</name></member> <member refid="classmb__mblock_1a639baa2ef8eae99412296b2dbbef71a9" prot="private" virt="non-virtual"><scope>mb_mblock</scope><name>mb_worker</name></member> <member refid="classmb__mblock_1aeb61577b8eab6672f87cf66a88814e26" prot="protected" virt="non-virtual"><scope>mb_mblock</scope><name>nconnections</name></member> <member refid="classmb__mblock_1aee14050f3be0aaf4c844702b0e6e294c" prot="public" virt="non-virtual"><scope>mb_mblock</scope><name>parent</name></member> <member refid="classmb__mblock_1a5a39284aefb6c9216968bc1e057a504e" prot="public" virt="non-virtual"><scope>mb_mblock</scope><name>schedule_one_shot_timeout</name></member> <member refid="classmb__mblock_1a2a025f508180403844eb3a4e6a122fc9" prot="public" virt="non-virtual"><scope>mb_mblock</scope><name>schedule_periodic_timeout</name></member> <member refid="classmb__mblock_1a10653b3e3b5f39272d028f54b96878ca" prot="protected" virt="non-virtual"><scope>mb_mblock</scope><name>set_class_name</name></member> <member refid="classmb__mblock_1affe51c6b003e08eb672934ff687daaca" prot="public" virt="non-virtual"><scope>mb_mblock</scope><name>set_instance_name</name></member> <member refid="classmb__mblock_1a1d9ccf70a91a04e23580408053f2fa2c" prot="protected" virt="non-virtual"><scope>mb_mblock</scope><name>shutdown_all</name></member> <member refid="classmb__mblock_1ad6b767c539ecd52fd843e01638c75379" prot="public" virt="non-virtual"><scope>mb_mblock</scope><name>walk_tree</name></member> <member refid="classmb__mblock_1a6f2b3e251032173579d5138b72290abc" prot="public" virt="virtual"><scope>mb_mblock</scope><name>~mb_mblock</name></member> </listofallmembers> </compounddef> </doxygen>