gstreamermm 0.10.9.1
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions

Gst::TaskPool Class Reference

A class representing a pool of GStreamer streaming threads. More...

Inheritance diagram for Gst::TaskPool:
Inheritance graph
[legend]
Collaboration diagram for Gst::TaskPool:
Collaboration graph
[legend]

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 ()
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.
virtual void prepare_vfunc ()
 Virtual function which prepares the thread pool.
virtual void cleanup_vfunc ()
 Virtual function to cleanup the thread pool.
virtual gpointer push_vfunc (const SlotPush& slot)
 Virtual function which starts a new thread.
virtual void join_vfunc (gpointer id)
 Virtual function to join a thread.

Static Public Member Functions

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

Protected Member Functions

 TaskPool ()

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

A class representing a 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

For example, void on_do_push();.


Constructor & Destructor Documentation

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

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.

Since gstreamermm 0.10:
.24
virtual void Gst::TaskPool::cleanup_vfunc ( ) [virtual]

Virtual function to cleanup the thread pool.

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.
GstTaskPool* Gst::TaskPool::gobj ( ) [inline]

Provides access to the underlying C GObject.

Reimplemented from Gst::Object.

const GstTaskPool* Gst::TaskPool::gobj ( ) const [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().

Since gstreamermm 0.10:
.24
Parameters:
idThe id.
virtual void Gst::TaskPool::join_vfunc ( gpointer  id) [virtual]

Virtual function to join a thread.

void Gst::TaskPool::prepare ( )
Exceptions:
Glib::Error.
virtual void Gst::TaskPool::prepare_vfunc ( ) [virtual]

Virtual function which prepares the thread pool.

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

Start the execution of a new thread from pool.

Parameters:
slotThe 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.
virtual gpointer Gst::TaskPool::push_vfunc ( const SlotPush slot) [virtual]

Virtual function which starts a new thread.

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:
objectThe C instance.
take_copyFalse 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: