gstreamermm 1.10.0

Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions | List of all members
Gst::TaskPool Class Reference

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

`#include <gstreamermm/taskpool.h>`

Inheritance diagram for Gst::TaskPool:
[legend]

## Public Types
typedef sigc::slot< void > | SlotPush
| For example, void on_do_push();. More...

## Public Member Functions
| TaskPool (TaskPool&& src) noexcept
TaskPool& | operator= (TaskPool&& src) noexcept
| ~TaskPool () noexcept override
GstTaskPool* | gobj ()
| Provides access to the underlying C GObject. More...
const GstTaskPool* | gobj () const
| Provides access to the underlying C GObject. More...
GstTaskPool* | gobj_copy ()
| Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
void | prepare ()
gpointer | push (const SlotPush& slot)
| Start the execution of a new thread from pool. More...
void | join (gpointer id)
| Join a task and/or return it to the pool. More...
void | cleanup ()
| Wait for all tasks to be stopped. More...
virtual void | prepare_vfunc ()
| Virtual function which prepares the thread pool. More...
virtual void | cleanup_vfunc ()
| Virtual function to cleanup the thread pool. More...
virtual gpointer | push_vfunc (const SlotPush& slot)
| Virtual function which starts a new thread. More...
virtual void | join_vfunc (gpointer id)
| Virtual function to join a thread. More...
Public Member Functions inherited from Gst::Object
| Object (Object&& src) noexcept
Object& | operator= (Object&& src) noexcept
| ~Object () noexcept override
GstObject* | gobj ()
| Provides access to the underlying C GObject. More...
const GstObject* | gobj () const
| Provides access to the underlying C GObject. More...
GstObject* | gobj_copy ()
| Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
bool | is_element () const
bool | is_element_factory () const
bool | is_pad () const
bool | is_pad_template () const
bool | is_bin () const
guint32 | get_flags () const
| Returns the entire set of flags for the object. More...
bool | set_name (const Glib::ustring& name)
| Sets the name of object, or gives object a guaranteed unique name (if name is `nullptr`). More...
Glib::ustring | get_name () const
| Returns a copy of the name of object. More...
bool | set_parent (const Glib::RefPtr< Gst::Object >& parent)
| Sets the parent of object to parent. More...
Glib::RefPtr< Gst::Object > | get_parent ()
| Returns the parent of object. More...
Glib::RefPtr< const Gst::Object > | get_parent () const
| Returns the parent of object. More...
void | unparent ()
| Clear the parent of object, removing the associated reference. More...
void | set_control_rate (Gst::ClockTime control_rate)
| Change the control-rate for this object. More...
Gst::ClockTime | get_control_rate () const
| Obtain the control-rate for this object. More...
Gst::ClockTime | suggest_next_sync () const
| Returns a suggestion for timestamps where buffers should be split to get best controller results. More...
bool | sync_values (Gst::ClockTime timestamp)
| Sets the properties of the object, according to the Gst::ControlSources that (maybe) handle them and for the given timestamp. More...
void | set_control_bindings_disabled (bool disabled)
| This function is used to disable all controlled properties of the object for some time, i.e. sync_values() will do nothing. More...
bool | has_asctive_control_bindings () const
| Check if the object has an active controlled properties. More...
bool | has_ancestor (const Glib::RefPtr< const Gst::Object >& ancestor) const
| Check if object has an ancestor ancestor somewhere up in the hierarchy. More...
bool | has_as_ancestor (const Glib::RefPtr< Gst::Object >& ancestor) const
| Check if object has an ancestor ancestor somewhere up in the hierarchy. More...
bool | has_as_parent (const Glib::RefPtr< Gst::Object >& parent) const
| Check if parent is the parent of object. More...
Glib::ustring | get_path_string ()
| Generates a string describing the path of object in the object hierarchy. More...
Glib::PropertyProxy< Glib::ustring > | property_name ()
| The name of the object. More...
Glib::PropertyProxy_ReadOnly< Glib::ustring > | property_name () const
| The name of the object. More...
Glib::PropertyProxy< Glib::RefPtr< Gst::Object > > | property_parent ()
| The parent of the object. More...
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Gst::Object > > | property_parent () const
| The parent of the object. More...
Glib::SignalProxy< void, const Glib::RefPtr< Gst::Object >&, GParamSpec*> | signal_deep_notify ()
int | get_refcount () const

## Static Public Member Functions
static GType | get_type ()
| Get the GType for this class, for use with the underlying GObject type system. More...
static Glib::RefPtr< TaskPool > | create ()
| Create a new default task pool. More...
Static Public Member Functions inherited from Gst::Object
static GType | get_type ()
| Get the GType for this class, for use with the underlying GObject type system. More...
static bool | check_uniqueness (const Glib::ListHandle< const Gst::Object >& list, const Glib::ustring& name)
| Checks to see if there is any object named name in list. More...

## Protected Member Functions
| TaskPool ()
Protected Member Functions inherited from Gst::Object
virtual void | on_deep_notify (const Glib::RefPtr< Gst::Object >& prop_object, GParamSpec* prop)
| This is a default handler for the signal signal_deep_notify(). More...

## 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. More...
Related Functions inherited from Gst::Object
Glib::RefPtr< Gst::Object > | wrap (GstObject* object, bool take_copy=false)
| A Glib::wrap() method for this object. More...

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

## ◆ SlotPush

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

For example, void on_do_push();.

## Constructor & Destructor Documentation

## ◆ TaskPool() [1/2]

Gst::TaskPool::TaskPool | ( | TaskPool&& | src | ) |
| noexcept

## ◆ ~TaskPool()

Gst::TaskPool::~TaskPool | ( |  | ) |
| override noexcept

## ◆ TaskPool() [2/2]

Gst::TaskPool::TaskPool | ( |  | ) |
| protected

## Member Function Documentation

## ◆ cleanup()

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.

## ◆ cleanup_vfunc()

virtual void Gst::TaskPool::cleanup_vfunc | ( |  | ) |
| virtual

Virtual function to cleanup the thread pool.

## ◆ create()

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.

## ◆ get_type()

static GType Gst::TaskPool::get_type | ( |  | ) |
| static

Get the GType for this class, for use with the underlying GObject type system.

## ◆ gobj() [1/2]

GstTaskPool* Gst::TaskPool::gobj | ( |  | ) |
| inline

Provides access to the underlying C GObject.

## ◆ gobj() [2/2]

const GstTaskPool* Gst::TaskPool::gobj | ( |  | ) | const
| inline

Provides access to the underlying C GObject.

## ◆ gobj_copy()

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.

## ◆ join()

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.

## ◆ join_vfunc()

virtual void Gst::TaskPool::join_vfunc | ( | gpointer | id | ) |
| virtual

Virtual function to join a thread.

## ◆ operator=()

TaskPool& Gst::TaskPool::operator= | ( | TaskPool&& | src | ) |
| noexcept

## ◆ prepare()

void Gst::TaskPool::prepare | ( |  | ) |

Exceptions

  Glib::Error. |

## ◆ prepare_vfunc()

virtual void Gst::TaskPool::prepare_vfunc | ( |  | ) |
| virtual

Virtual function which prepares the thread pool.

Exceptions

  Glib::Error. |

## ◆ push()

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

## ◆ push_vfunc()

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

## ◆ wrap()

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.