gstreamermm  1.10.0
Public Types | Public Member Functions | Protected Member Functions | Related Functions | List of all members
Gst::MiniObject Class Reference

This is a base class for some gstreamermm objects. More...

#include <gstreamermm/miniobject.h>

Inheritance diagram for Gst::MiniObject:
Inheritance graph
[legend]

Public Types

typedef sigc::slot< void > SlotFinalizer
 

Public Member Functions

void reference () const
 Increment the reference count for this object. More...
 
void unreference () const
 Decrement the reference count for this object. More...
 
GstMiniObject* gobj ()
 Provides access to the underlying C instance. More...
 
const GstMiniObject* gobj () const
 Provides access to the underlying C instance. More...
 
GstMiniObject* gobj_copy () const
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
 
 MiniObject ()=delete
 
 MiniObject (const MiniObject&)=delete
 
MiniObjectoperator= (const MiniObject&)=delete
 
 ~MiniObject ()
 
guint get_flags () const
 
void set_flags (const guint& value)
 
gint get_refcount () const
 
gint get_lockstate () const
 
bool lock (LockFlags flags)
 Lock the mini-object with the specified access mode in flags. More...
 
void unlock (LockFlags flags)
 Unlock the mini-object with the specified access mode in flags. More...
 
bool is_writable () const
 If mini_object has the LOCKABLE flag set, check if the current EXCLUSIVE lock on object is the only one, this means that changes to the object will not be visible to any other object. More...
 
Glib::RefPtr< MiniObjectcreate_writable ()
 Checks if a mini-object is writable. More...
 
void set_qdata (GQuark quark, QuarkData* data)
 This sets an opaque, named pointer on a miniobject. More...
 
QuarkDataget_qdata (GQuark quark) const
 This function gets back user data pointers stored via set_qdata(). More...
 
QuarkDatasteal_qdata (GQuark quark)
 This function gets back user data pointers stored via set_qdata() and removes the data from object without invoking its destroy() function (if any was set). More...
 
void add_finalize_notifier (const SlotFinalizer& slot)
 Adds notifier when mini object is finalized. More...
 
void remove_finalize_notifier ()
 Remove finalize notifier. More...
 

Protected Member Functions

void operator delete (void*, std::size_t)
 

Related Functions

(Note that these are not member functions.)

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

Detailed Description

This is a base class for some gstreamermm objects.

It is similar to Glib::Object but has no GObject property or signal support.

Member Typedef Documentation

◆ SlotFinalizer

typedef sigc::slot< void > Gst::MiniObject::SlotFinalizer

Constructor & Destructor Documentation

◆ MiniObject() [1/2]

Gst::MiniObject::MiniObject ( )
delete

◆ MiniObject() [2/2]

Gst::MiniObject::MiniObject ( const MiniObject )
delete

◆ ~MiniObject()

Gst::MiniObject::~MiniObject ( )

Member Function Documentation

◆ add_finalize_notifier()

void Gst::MiniObject::add_finalize_notifier ( const SlotFinalizer slot)

Adds notifier when mini object is finalized.

Parameters
slotnotifier.

◆ create_writable()

Glib::RefPtr<MiniObject> Gst::MiniObject::create_writable ( )

Checks if a mini-object is writable.

If not, a writable copy is made and returned. This gives away the reference to the original mini object, and returns a reference to the new object.

MT safe

Returns
A mini-object (possibly the same pointer) that is writable.

◆ get_flags()

guint Gst::MiniObject::get_flags ( ) const

◆ get_lockstate()

gint Gst::MiniObject::get_lockstate ( ) const

◆ get_qdata()

QuarkData* Gst::MiniObject::get_qdata ( GQuark  quark) const

This function gets back user data pointers stored via set_qdata().

Parameters
quarka GQuark, naming the user data pointer.
Returns
the user data pointer set, or NULL.

◆ get_refcount()

gint Gst::MiniObject::get_refcount ( ) const

◆ gobj() [1/2]

GstMiniObject* Gst::MiniObject::gobj ( )

Provides access to the underlying C instance.

◆ gobj() [2/2]

const GstMiniObject* Gst::MiniObject::gobj ( ) const

Provides access to the underlying C instance.

◆ gobj_copy()

GstMiniObject* Gst::MiniObject::gobj_copy ( ) const

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

◆ is_writable()

bool Gst::MiniObject::is_writable ( ) const

If mini_object has the LOCKABLE flag set, check if the current EXCLUSIVE lock on object is the only one, this means that changes to the object will not be visible to any other object.

If the LOCKABLE flag is not set, check if the refcount of mini_object is exactly 1, meaning that no other reference exists to the object and that the object is therefore writable.

Modification of a mini-object should only be done after verifying that it is writable.

Returns
true if the object is writable.

◆ lock()

bool Gst::MiniObject::lock ( LockFlags  flags)

Lock the mini-object with the specified access mode in flags.

Parameters
flagsGst::LockFlags.
Returns
true if object could be locked.

◆ operator delete()

void Gst::MiniObject::operator delete ( void *  ,
std::size_t   
)
protected

◆ operator=()

MiniObject& Gst::MiniObject::operator= ( const MiniObject )
delete

◆ reference()

void Gst::MiniObject::reference ( ) const

Increment the reference count for this object.

You should never need to do this manually - use the object via a RefPtr instead.

◆ remove_finalize_notifier()

void Gst::MiniObject::remove_finalize_notifier ( )

Remove finalize notifier.

◆ set_flags()

void Gst::MiniObject::set_flags ( const guint &  value)

◆ set_qdata()

void Gst::MiniObject::set_qdata ( GQuark  quark,
QuarkData data 
)

This sets an opaque, named pointer on a miniobject.

The name is specified through a #GQuark (retrived e.g. via g_quark_from_static_string()), and the pointer can be gotten back with get_qdata(). Setting a previously set user data pointer, overrides (frees) the old pointer set, using NULL as pointer essentially removes the data stored.

Parameters
quarka GQuark, naming the user data pointer.
dataan opaque user data pointer.

◆ steal_qdata()

QuarkData* Gst::MiniObject::steal_qdata ( GQuark  quark)

This function gets back user data pointers stored via set_qdata() and removes the data from object without invoking its destroy() function (if any was set).

Parameters
quarkA Quark, naming the user data pointer.
Returns
The user data pointer set, or nullptr.

◆ unlock()

void Gst::MiniObject::unlock ( LockFlags  flags)

Unlock the mini-object with the specified access mode in flags.

Parameters
flagsGst::LockFlags.

◆ unreference()

void Gst::MiniObject::unreference ( ) const

Decrement the reference count for this object.

You should never need to do this manually - use the object via a RefPtr instead.

Friends And Related Function Documentation

◆ wrap()

Glib::RefPtr< Gst::MiniObject > wrap ( GstMiniObject *  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.