<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>gstreamermm: Gst::TaskPool Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="namespaceGst.html">Gst</a>::<a class="el" href="classGst_1_1TaskPool.html">TaskPool</a> </div> </div> <div class="contents"> <h1>Gst::TaskPool Class Reference</h1><!-- doxytag: class="Gst::TaskPool" --><!-- doxytag: inherits="Gst::Object" --> <p><a class="el" href="classGst_1_1TaskPool.html" title="Gst::TaskPool - Pool of GStreamer streaming threads.">Gst::TaskPool</a> - Pool of GStreamer streaming threads. <a href="#_details">More...</a></p> <p>Inherits <a class="el" href="classGst_1_1Object.html">Gst::Object</a>.</p> <div class="dynheader"> Collaboration diagram for Gst::TaskPool:</div> <div class="dynsection"> <div class="center"><img src="classGst_1_1TaskPool__coll__graph.png" border="0" usemap="#Gst_1_1TaskPool_coll__map" alt="Collaboration graph"/></div> <map name="Gst_1_1TaskPool_coll__map" id="Gst_1_1TaskPool_coll__map"> <area shape="rect" href="classGst_1_1Object.html" title="Gst::Object - Base class for the GStreamer object hierarchy." alt="" coords="21,237,109,267"/><area shape="rect" href="../../../glibmm-2.4/reference/html/classGlib_1_1Object.html" title="Glib::Object" alt="" coords="20,160,111,189"/><area shape="rect" href="../../../glibmm-2.4/reference/html/classGlib_1_1ObjectBase.html" title="Glib::ObjectBase" alt="" coords="5,83,125,112"/><area shape="rect" href="../../../libsigc++-2.0/reference/html/structsigc_1_1trackable.html" title="sigc::trackable" alt="" coords="12,5,119,35"/></map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <p><a href="classGst_1_1TaskPool-members.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="elRef" href="../../../libsigc++-2.0/reference/html/classsigc_1_1slot.html">sigc::slot</a>< void > </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1TaskPool.html#a08de3ae178ec8cb586aa447f2c58b548">SlotPush</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">For example, void on_do_push();. <a href="#a08de3ae178ec8cb586aa447f2c58b548"></a><br/></td></tr> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1TaskPool.html#a0219ba53496b820173b90cd2a6f2e9d7">~TaskPool</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">GstTaskPool* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1TaskPool.html#a4ac83b20ffdffe4a9abb55df881db45c">gobj</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Provides access to the underlying C GObject. <a href="#a4ac83b20ffdffe4a9abb55df881db45c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const GstTaskPool* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1TaskPool.html#af1e070b668b16bc28f182074d005be65">gobj</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Provides access to the underlying C GObject. <a href="#af1e070b668b16bc28f182074d005be65"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">GstTaskPool* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1TaskPool.html#a95e248e6cdd68ee0e000bb5c76e2d6c1">gobj_copy</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. <a href="#a95e248e6cdd68ee0e000bb5c76e2d6c1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1TaskPool.html#a73c6b1eff956b5a23fb17b91a404541e">prepare</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">gpointer </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1TaskPool.html#ac83e65e642ba730de7624103f1b2545d">push</a> (const <a class="elRef" href="../../../libsigc++-2.0/reference/html/classsigc_1_1slot.html">SlotPush</a>& slot)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Start the execution of a new thread from pool. <a href="#ac83e65e642ba730de7624103f1b2545d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1TaskPool.html#a3c639b26335b701fbf39a0353e204c86">join</a> (gpointer id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Join a task and/or return it to the pool. <a href="#a3c639b26335b701fbf39a0353e204c86"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1TaskPool.html#ad9e186ce45550f402853fbda38c25e95">cleanup</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Wait for all tasks to be stopped. <a href="#ad9e186ce45550f402853fbda38c25e95"></a><br/></td></tr> <tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="elRef" href="../../../glibmm-2.4/reference/html/classGlib_1_1RefPtr.html">Glib::RefPtr</a>< <a class="el" href="classGst_1_1TaskPool.html">TaskPool</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1TaskPool.html#a647c480b5a600b14f954e536a4d55e91">create</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new default task pool. <a href="#a647c480b5a600b14f954e536a4d55e91"></a><br/></td></tr> <tr><td colspan="2"><h2>Related Functions</h2></td></tr> <tr><td colspan="2"><p>(Note that these are not member functions.) </p> <br/><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="../../../glibmm-2.4/reference/html/classGlib_1_1RefPtr.html">Glib::RefPtr</a>< <a class="el" href="classGst_1_1TaskPool.html">Gst::TaskPool</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1TaskPool.html#ae50baa545cf60a4412841ef455682ad9">wrap</a> (GstTaskPool* object, bool take_copy=false)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A <a class="elRef" href="../../../glibmm-2.4/reference/html/namespaceGlib.html#a671306f4a3a0cae5ab4d7a9d54886592">Glib::wrap()</a> method for this object. <a href="#ae50baa545cf60a4412841ef455682ad9"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p><a class="el" href="classGst_1_1TaskPool.html" title="Gst::TaskPool - Pool of GStreamer streaming threads.">Gst::TaskPool</a> - Pool of GStreamer streaming threads. </p> <p>This object provides an abstraction for creating threads. The default implementation uses a regular <a class="elRef" href="../../../glibmm-2.4/reference/html/classGlib_1_1ThreadPool.html">Glib::ThreadPool</a> to start tasks.</p> <p>Subclasses can be made to create custom threads.</p> <p>Last reviewed on 2009-04-23 (0.10.24) </p> <hr/><h2>Member Typedef Documentation</h2> <a class="anchor" id="a08de3ae178ec8cb586aa447f2c58b548"></a><!-- doxytag: member="Gst::TaskPool::SlotPush" ref="a08de3ae178ec8cb586aa447f2c58b548" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="elRef" href="../../../libsigc++-2.0/reference/html/classsigc_1_1slot.html">sigc::slot</a><void> <a class="elRef" href="../../../libsigc++-2.0/reference/html/classsigc_1_1slot.html">Gst::TaskPool::SlotPush</a></td> </tr> </table> </div> <div class="memdoc"> <p>For example, void on_do_push();. </p> </div> </div> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a0219ba53496b820173b90cd2a6f2e9d7"></a><!-- doxytag: member="Gst::TaskPool::~TaskPool" ref="a0219ba53496b820173b90cd2a6f2e9d7" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual Gst::TaskPool::~TaskPool </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="ad9e186ce45550f402853fbda38c25e95"></a><!-- doxytag: member="Gst::TaskPool::cleanup" ref="ad9e186ce45550f402853fbda38c25e95" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Gst::TaskPool::cleanup </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Wait for all tasks to be stopped. </p> <p>This is mainly used internally to ensure proper cleanup of internal data structures in test suites.</p> <p>MT safe. </p> </div> </div> <a class="anchor" id="a647c480b5a600b14f954e536a4d55e91"></a><!-- doxytag: member="Gst::TaskPool::create" ref="a647c480b5a600b14f954e536a4d55e91" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="elRef" href="../../../glibmm-2.4/reference/html/classGlib_1_1RefPtr.html">Glib::RefPtr</a><<a class="el" href="classGst_1_1TaskPool.html">TaskPool</a>> Gst::TaskPool::create </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Create a new default task pool. </p> <p>The default task pool will use a regular <a class="elRef" href="../../../glibmm-2.4/reference/html/classGlib_1_1ThreadPool.html">Glib::ThreadPool</a> for threads. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>A new <a class="el" href="classGst_1_1TaskPool.html" title="Gst::TaskPool - Pool of GStreamer streaming threads.">Gst::TaskPool</a>. </dd></dl> </div> </div> <a class="anchor" id="af1e070b668b16bc28f182074d005be65"></a><!-- doxytag: member="Gst::TaskPool::gobj" ref="af1e070b668b16bc28f182074d005be65" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const GstTaskPool* Gst::TaskPool::gobj </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Provides access to the underlying C GObject. </p> <p>Reimplemented from <a class="el" href="classGst_1_1Object.html#a11313ecde7bc68ee4ee43c0cf2e65c22">Gst::Object</a>.</p> </div> </div> <a class="anchor" id="a4ac83b20ffdffe4a9abb55df881db45c"></a><!-- doxytag: member="Gst::TaskPool::gobj" ref="a4ac83b20ffdffe4a9abb55df881db45c" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GstTaskPool* Gst::TaskPool::gobj </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Provides access to the underlying C GObject. </p> <p>Reimplemented from <a class="el" href="classGst_1_1Object.html#a3d889e949c76aa3ab4490026d6aca8ca">Gst::Object</a>.</p> </div> </div> <a class="anchor" id="a95e248e6cdd68ee0e000bb5c76e2d6c1"></a><!-- doxytag: member="Gst::TaskPool::gobj_copy" ref="a95e248e6cdd68ee0e000bb5c76e2d6c1" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GstTaskPool* Gst::TaskPool::gobj_copy </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. </p> <p>Reimplemented from <a class="el" href="classGst_1_1Object.html#a63d7202d3eb47c81ffc3ac16a895e9d1">Gst::Object</a>.</p> </div> </div> <a class="anchor" id="a3c639b26335b701fbf39a0353e204c86"></a><!-- doxytag: member="Gst::TaskPool::join" ref="a3c639b26335b701fbf39a0353e204c86" args="(gpointer id)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Gst::TaskPool::join </td> <td>(</td> <td class="paramtype">gpointer </td> <td class="paramname"> <em>id</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Join a task and/or return it to the pool. </p> <p><em>id</em> is the id obtained from <a class="el" href="classGst_1_1TaskPool.html#ac83e65e642ba730de7624103f1b2545d" title="Start the execution of a new thread from pool.">push()</a>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>The id. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a73c6b1eff956b5a23fb17b91a404541e"></a><!-- doxytag: member="Gst::TaskPool::prepare" ref="a73c6b1eff956b5a23fb17b91a404541e" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Gst::TaskPool::prepare </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <dl><dt><b>Exceptions:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>Glib::Error.</em> </td><td></td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ac83e65e642ba730de7624103f1b2545d"></a><!-- doxytag: member="Gst::TaskPool::push" ref="ac83e65e642ba730de7624103f1b2545d" args="(const SlotPush &slot)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">gpointer Gst::TaskPool::push </td> <td>(</td> <td class="paramtype">const <a class="elRef" href="../../../libsigc++-2.0/reference/html/classsigc_1_1slot.html">SlotPush</a> & </td> <td class="paramname"> <em>slot</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Start the execution of a new thread from pool. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>slot</em> </td><td>The function to call. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>A pointer that should be used for the <a class="el" href="classGst_1_1TaskPool.html#a3c639b26335b701fbf39a0353e204c86" title="Join a task and/or return it to the pool.">join()</a> method. This pointer can be 0, you must check error to detect errors. </dd></dl> <dl><dt><b>Exceptions:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>Glib::Error.</em> </td><td></td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Friends And Related Function Documentation</h2> <a class="anchor" id="ae50baa545cf60a4412841ef455682ad9"></a><!-- doxytag: member="Gst::TaskPool::wrap" ref="ae50baa545cf60a4412841ef455682ad9" args="(GstTaskPool *object, bool take_copy=false)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="elRef" href="../../../glibmm-2.4/reference/html/classGlib_1_1RefPtr.html">Glib::RefPtr</a>< <a class="el" href="classGst_1_1TaskPool.html">Gst::TaskPool</a> > wrap </td> <td>(</td> <td class="paramtype">GstTaskPool * </td> <td class="paramname"> <em>object</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>take_copy</em> = <code>false</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [related]</code></td> </tr> </table> </div> <div class="memdoc"> <p>A <a class="elRef" href="../../../glibmm-2.4/reference/html/namespaceGlib.html#a671306f4a3a0cae5ab4d7a9d54886592">Glib::wrap()</a> method for this object. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>The C instance. </td></tr> <tr><td valign="top"></td><td valign="top"><em>take_copy</em> </td><td>False if the result should take ownership of the C instance. True if it should take a new copy or ref. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>A C++ instance that wraps this C instance. </dd></dl> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li>gstreamermm/taskpool.h</li> </ul> </div> <hr size="1"/><address style="text-align: right;"><small>Generated on Mon Sep 21 22:33:01 2009 for gstreamermm by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address> </body> </html>