<?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.6.2"> <compounddef id="classmbi__runtime__lock" kind="class" prot="public"> <compoundname>mbi_runtime_lock</compoundname> <includes refid="mbi__runtime__lock_8h" local="no">mbi_runtime_lock.h</includes> <sectiondef kind="private-attrib"> <memberdef kind="variable" id="classmbi__runtime__lock_1a6dbff9a0f80f4d253869f992985498b5" prot="private" static="no" mutable="no"> <type><ref refid="classmb__runtime__base" kindref="compound">mb_runtime_base</ref> *</type> <definition>mb_runtime_base* mbi_runtime_lock::d_rt</definition> <argsstring></argsstring> <name>d_rt</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/lib/mbi_runtime_lock.h" line="51" bodyfile="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/lib/mbi_runtime_lock.h" bodystart="51" bodyend="-1"/> </memberdef> </sectiondef> <sectiondef kind="public-func"> <memberdef kind="function" id="classmbi__runtime__lock_1a91868971e4953dc526ddf86b477edbd3" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual"> <type></type> <definition>mbi_runtime_lock::mbi_runtime_lock</definition> <argsstring>(mb_runtime_base *rt)</argsstring> <name>mbi_runtime_lock</name> <param> <type><ref refid="classmb__runtime__base" kindref="compound">mb_runtime_base</ref> *</type> <declname>rt</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/lib/mbi_runtime_lock.h" line="53" bodyfile="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/lib/mbi_runtime_lock.h" bodystart="53" bodyend="53"/> <references refid="classmb__runtime__base_1ac9944a6774ab7ba81eca59d1ea0e673f" compoundref="mb__runtime__base_8h" startline="45" endline="45">mb_runtime_base::lock</references> </memberdef> <memberdef kind="function" id="classmbi__runtime__lock_1a7db7ee73b22300cfbe77728ce50e26ff" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual"> <type></type> <definition>mbi_runtime_lock::mbi_runtime_lock</definition> <argsstring>(mb_mblock_impl *mi)</argsstring> <name>mbi_runtime_lock</name> <param> <type><ref refid="classmb__mblock__impl" kindref="compound">mb_mblock_impl</ref> *</type> <declname>mi</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/lib/mbi_runtime_lock.h" line="54" bodyfile="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/lib/mbi_runtime_lock.h" bodystart="54" bodyend="54"/> <references refid="classmb__runtime__base_1ac9944a6774ab7ba81eca59d1ea0e673f" compoundref="mb__runtime__base_8h" startline="45" endline="45">mb_runtime_base::lock</references> </memberdef> <memberdef kind="function" id="classmbi__runtime__lock_1a22937b7728566aee4a8e1ecab1d120e4" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual"> <type></type> <definition>mbi_runtime_lock::mbi_runtime_lock</definition> <argsstring>(mb_mblock *mb)</argsstring> <name>mbi_runtime_lock</name> <param> <type><ref refid="classmb__mblock" kindref="compound">mb_mblock</ref> *</type> <declname>mb</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/lib/mbi_runtime_lock.h" line="55" bodyfile="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/lib/mbi_runtime_lock.h" bodystart="55" bodyend="55"/> <references refid="classmb__runtime__base_1ac9944a6774ab7ba81eca59d1ea0e673f" compoundref="mb__runtime__base_8h" startline="45" endline="45">mb_runtime_base::lock</references> </memberdef> <memberdef kind="function" id="classmbi__runtime__lock_1ab1d3643d42a9040b71a0d4b1c5fec255" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual"> <type></type> <definition>mbi_runtime_lock::~mbi_runtime_lock</definition> <argsstring>(void)</argsstring> <name>~mbi_runtime_lock</name> <param> <type>void</type> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/lib/mbi_runtime_lock.h" line="56" bodyfile="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/lib/mbi_runtime_lock.h" bodystart="56" bodyend="56"/> <references refid="classmb__runtime__base_1abb6d8310dfeec507938fef91425a963a" compoundref="mb__runtime__base_8h" startline="51" endline="51">mb_runtime_base::unlock</references> </memberdef> </sectiondef> <briefdescription> <para>acquire and release big runtime lock </para> </briefdescription> <detaileddescription> <para>As an alternative to: { rt->lock(); ..... rt->unlock(); }</para><para>you can use a single instance of the <ref refid="classmbi__runtime__lock" kindref="compound">mbi_runtime_lock</ref> class:</para><para>{ <ref refid="classmbi__runtime__lock" kindref="compound">mbi_runtime_lock</ref> l(rt); .... }</para><para>This has the advantage that rt->unlock() will be called automatically when an exception is thrown. </para> </detaileddescription> <collaborationgraph> <node id="13732"> <label>T</label> </node> <node id="13707"> <label>mb_runtime_base</label> <link refid="classmb__runtime__base"/> <childnode refid="13708" relation="public-inheritance"> </childnode> <childnode refid="13733" relation="usage"> <edgelabel>d_accepter</edgelabel> </childnode> <childnode refid="13728" relation="usage"> <edgelabel>d_brl</edgelabel> </childnode> </node> <node id="13725"> <label>boost::shared_ptr< mb_message ></label> <link refid="classboost_1_1shared__ptr"/> <childnode refid="13726" relation="usage"> <edgelabel>px</edgelabel> </childnode> </node> <node id="13730"> <label>std::map< std::string, mb_port_sptr ></label> <childnode refid="13731" relation="usage"> <edgelabel>elements</edgelabel> </childnode> <childnode refid="13721" relation="usage"> <edgelabel>keys</edgelabel> </childnode> </node> <node id="13726"> <label>mb_message</label> <link refid="classmb__message"/> <childnode refid="13725" relation="usage"> <edgelabel>d_next</edgelabel> </childnode> <childnode refid="13719" relation="usage"> <edgelabel>d_port_id</edgelabel> <edgelabel>d_data</edgelabel> <edgelabel>d_metadata</edgelabel> <edgelabel>d_signal</edgelabel> </childnode> </node> <node id="13731"> <label>boost::shared_ptr< T ></label> <link refid="classboost_1_1shared__ptr"/> <childnode refid="13732" relation="usage"> <edgelabel>px</edgelabel> </childnode> </node> <node id="13708"> <label>mb_runtime</label> <link refid="classmb__runtime"/> <childnode refid="13709" relation="usage"> <edgelabel>d_top</edgelabel> </childnode> </node> <node id="13712"> <label>mb_mblock_impl</label> <link refid="classmb__mblock__impl"/> <childnode refid="13713" relation="usage"> <edgelabel>d_conn_table</edgelabel> </childnode> <childnode refid="13723" relation="usage"> <edgelabel>d_msgq</edgelabel> </childnode> <childnode refid="13710" relation="usage"> <edgelabel>d_mb</edgelabel> <edgelabel>d_mb_parent</edgelabel> </childnode> <childnode refid="13707" relation="usage"> <edgelabel>d_runtime</edgelabel> </childnode> <childnode refid="13721" relation="usage"> <edgelabel>d_class_name</edgelabel> <edgelabel>d_instance_name</edgelabel> </childnode> <childnode refid="13729" relation="usage"> <edgelabel>d_comp_map</edgelabel> </childnode> <childnode refid="13730" relation="usage"> <edgelabel>d_port_map</edgelabel> </childnode> </node> <node id="13718"> <label>mb_port</label> <link refid="classmb__port"/> <childnode refid="13710" relation="usage"> <edgelabel>d_mblock</edgelabel> </childnode> <childnode refid="13719" relation="usage"> <edgelabel>d_protocol_class</edgelabel> <edgelabel>d_port_symbol</edgelabel> </childnode> <childnode refid="13721" relation="usage"> <edgelabel>d_port_name</edgelabel> </childnode> </node> <node id="13709"> <label>boost::shared_ptr< mb_mblock ></label> <link refid="classboost_1_1shared__ptr"/> <childnode refid="13710" relation="usage"> <edgelabel>px</edgelabel> </childnode> </node> <node id="13716"> <label>mb_endpoint</label> <link refid="classmb__endpoint"/> <childnode refid="13717" relation="usage"> <edgelabel>d_port</edgelabel> </childnode> <childnode refid="13721" relation="usage"> <edgelabel>d_component_name</edgelabel> <edgelabel>d_port_name</edgelabel> </childnode> </node> <node id="13715"> <label>mb_connection</label> <link refid="structmb__connection"/> <childnode refid="13716" relation="usage"> <edgelabel>d_ep</edgelabel> </childnode> </node> <node id="13722"> <label>std::basic_string< char ></label> </node> <node id="13706"> <label>mbi_runtime_lock</label> <link refid="classmbi__runtime__lock"/> <childnode refid="13707" relation="usage"> <edgelabel>d_rt</edgelabel> </childnode> </node> <node id="13710"> <label>mb_mblock</label> <link refid="classmb__mblock"/> <childnode refid="13711" relation="usage"> <edgelabel>d_impl</edgelabel> </childnode> </node> <node id="13724"> <label>mb_msg_queue::subq</label> <childnode refid="13725" relation="usage"> <edgelabel>head</edgelabel> <edgelabel>tail</edgelabel> </childnode> </node> <node id="13717"> <label>boost::shared_ptr< mb_port ></label> <link refid="classboost_1_1shared__ptr"/> <childnode refid="13718" relation="usage"> <edgelabel>px</edgelabel> </childnode> </node> <node id="13713"> <label>mb_conn_table</label> <link refid="classmb__conn__table"/> <childnode refid="13714" relation="usage"> <edgelabel>d_connections</edgelabel> </childnode> </node> <node id="13733"> <label>boost::shared_ptr< mb_msg_accepter ></label> <link refid="classboost_1_1shared__ptr"/> <childnode refid="13734" relation="usage"> <edgelabel>px</edgelabel> </childnode> </node> <node id="13719"> <label>boost::shared_ptr< pmt_base ></label> <link refid="classboost_1_1shared__ptr"/> <childnode refid="13720" relation="usage"> <edgelabel>px</edgelabel> </childnode> </node> <node id="13720"> <label>pmt_base</label> <link refid="classpmt__base"/> </node> <node id="13723"> <label>mb_msg_queue</label> <link refid="classmb__msg__queue"/> <childnode refid="13724" relation="usage"> <edgelabel>d_queue</edgelabel> </childnode> <childnode refid="13727" relation="usage"> <edgelabel>d_not_empty</edgelabel> </childnode> <childnode refid="13728" relation="usage"> <edgelabel>d_mutex</edgelabel> </childnode> </node> <node id="13727"> <label>omni_condition</label> <link refid="classomni__condition"/> <childnode refid="13728" relation="usage"> <edgelabel>mutex</edgelabel> </childnode> </node> <node id="13729"> <label>std::map< std::string, mb_mblock_sptr ></label> <childnode refid="13721" relation="usage"> <edgelabel>keys</edgelabel> </childnode> </node> <node id="13711"> <label>boost::shared_ptr< mb_mblock_impl ></label> <link refid="classboost_1_1shared__ptr"/> <childnode refid="13712" relation="usage"> <edgelabel>px</edgelabel> </childnode> </node> <node id="13734"> <label>mb_msg_accepter</label> <link refid="classmb__msg__accepter"/> </node> <node id="13714"> <label>std::list< mb_connection ></label> <childnode refid="13715" relation="usage"> <edgelabel>elements</edgelabel> </childnode> </node> <node id="13721"> <label>std::string</label> <childnode refid="13722" relation="public-inheritance"> </childnode> </node> <node id="13728"> <label>omni_mutex</label> <link refid="classomni__mutex"/> </node> </collaborationgraph> <location file="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/lib/mbi_runtime_lock.h" line="50" bodyfile="/builddir/build/BUILD/gnuradio-3.2.2/mblock/src/lib/mbi_runtime_lock.h" bodystart="50" bodyend="58"/> <listofallmembers> <member refid="classmbi__runtime__lock_1a6dbff9a0f80f4d253869f992985498b5" prot="private" virt="non-virtual"><scope>mbi_runtime_lock</scope><name>d_rt</name></member> <member refid="classmbi__runtime__lock_1a91868971e4953dc526ddf86b477edbd3" prot="public" virt="non-virtual"><scope>mbi_runtime_lock</scope><name>mbi_runtime_lock</name></member> <member refid="classmbi__runtime__lock_1a7db7ee73b22300cfbe77728ce50e26ff" prot="public" virt="non-virtual"><scope>mbi_runtime_lock</scope><name>mbi_runtime_lock</name></member> <member refid="classmbi__runtime__lock_1a22937b7728566aee4a8e1ecab1d120e4" prot="public" virt="non-virtual"><scope>mbi_runtime_lock</scope><name>mbi_runtime_lock</name></member> <member refid="classmbi__runtime__lock_1ab1d3643d42a9040b71a0d4b1c5fec255" prot="public" virt="non-virtual"><scope>mbi_runtime_lock</scope><name>~mbi_runtime_lock</name></member> </listofallmembers> </compounddef> </doxygen>