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:
Inheritance graph
[legend]

Public Types

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

Public Member Functions

 TaskPool (TaskPool&& src) noexcept
 
TaskPooloperator= (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
 
Objectoperator= (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::Objectget_parent ()
 Returns the parent of object. More...
 
Glib::RefPtr< const Gst::Objectget_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< TaskPoolcreate ()
 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::TaskPoolwrap (GstTaskPool* 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 ( )
overridenoexcept

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

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