Gst::TaskPool Class Reference

Gst::TaskPool - Pool of GStreamer streaming threads. More...

#include <taskpool.h>

Inheritance diagram for Gst::TaskPool:
Gst::Object

List of all members.

Public Types

typedef sigc::slot<void> SlotPush
 For example, void on_do_push();.

Public Member Functions

virtual ~TaskPool ()
GstTaskPool* gobj ()
 Provides access to the underlying C GObject.
const GstTaskPool* gobj () const
 Provides access to the underlying C GObject.
GstTaskPool* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
void prepare ()
 Prepare the taskpool for accepting push() operations.
gpointer push (const SlotPush& slot)
 Start the execution of a new thread from pool.
void join (gpointer id)
 Join a task and/or return it to the pool.
void cleanup ()
 Wait for all tasks to be stopped.

Static Public Member Functions

static Glib::RefPtr<TaskPoolcreate ()
 Create a new default task pool.

Related Functions

(Note that these are not member functions.)



Glib::RefPtr<Gst::TaskPoolwrap (GstTaskPool* object, bool take_copy=false)
 A Glib::wrap() method for this object.

Detailed Description

Gst::TaskPool - Pool of GStreamer streaming threads.

This object provides an abstraction for creating threads. The default implementation uses a regular Glib::ThreadPool to start tasks.

Subclasses can be made to create custom threads.

Last reviewed on 2009-04-23 (0.10.24)


Member Typedef Documentation

typedef sigc::slot<void> Gst::TaskPool::SlotPush

For example, void on_do_push();.


Constructor & Destructor Documentation

virtual Gst::TaskPool::~TaskPool (  )  [virtual]

Member Function Documentation

void Gst::TaskPool::cleanup (  ) 

Wait for all tasks to be stopped.

This is mainly used internally to ensure proper cleanup of internal data structures in test suites.

MT safe.

static Glib::RefPtr<TaskPool> Gst::TaskPool::create (  )  [static]

Create a new default task pool.

The default task pool will use a regular Glib::ThreadPool for threads.

Returns:
A new Gst::TaskPool.
const GstTaskPool* Gst::TaskPool::gobj (  )  const [inline]

Provides access to the underlying C GObject.

Reimplemented from Gst::Object.

GstTaskPool* Gst::TaskPool::gobj (  )  [inline]

Provides access to the underlying C GObject.

Reimplemented from Gst::Object.

GstTaskPool* Gst::TaskPool::gobj_copy (  ) 

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

Reimplemented from Gst::Object.

void Gst::TaskPool::join ( gpointer  id  ) 

Join a task and/or return it to the pool.

id is the id obtained from push().

Parameters:
id The id.
void Gst::TaskPool::prepare (  ) 

Prepare the taskpool for accepting push() operations.

Exceptions:
Glib::Error. MT safe.
gpointer Gst::TaskPool::push ( const SlotPush slot  ) 

Start the execution of a new thread from pool.

Parameters:
slot The function to call.
Returns:
A pointer that should be used for the join() method. This pointer can be 0, you must check error to detect errors.
Exceptions:
Glib::Error. 

Friends And Related Function Documentation

Glib::RefPtr<Gst::TaskPool> wrap ( GstTaskPool *  object,
bool  take_copy = false 
) [related]

A Glib::wrap() method for this object.

Parameters:
object The C instance.
take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
Returns:
A C++ instance that wraps this C instance.

The documentation for this class was generated from the following file:

Generated on Wed Sep 2 19:42:37 2009 for gstreamermm by  doxygen 1.6.1