# Gst::TaskPool Class Reference

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

Inherits Gst::Object.

Collaboration diagram for Gst::TaskPool:
[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< TaskPool > | create ()
| Create a new default task pool.
## Protected Member Functions
| TaskPool ()
## Related Functions
(Note that these are not member functions.)
Glib::RefPtr< Gst::TaskPool > | wrap (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

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

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.

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().

Since gstreamermm 0.10:
  .24

Parameters:

  | id | The 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:

  | 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. |

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:

  | 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:

- gstreamermm/taskpool.h