Abstract container for D-Bus containers. More...
#include <edelib/EdbusContainer.h>
Public Types | |
typedef list< T >::iterator | iterator |
typedef list< T >::const_iterator | const_iterator |
Protected Member Functions | |
void | dispose (void) |
void | unhook (void) |
EdbusContainer () | |
EdbusContainer (const EdbusContainer &other) | |
~EdbusContainer () | |
EdbusContainer & | operator= (const EdbusContainer &other) |
Protected Attributes | |
EdbusContainerPrivate * | impl |
Abstract container for D-Bus containers.
EdbusContainer is a class for easier creating EdbusDict and EdbusList containers. It uses implicit sharing so all concrete implementations copy internal data only when is needed.
This class should be used as base class so inherited classes can provide additional funcionality.
Inherited classes also must call unhook() member when one of their members is going to write in internal EdbusContainer container.
typedef list<T>::const_iterator const_iterator |
EdbusContainer | ( | ) | [inline, protected] |
Create empty container
EdbusContainer | ( | const EdbusContainer< T > & | other | ) | [inline, protected] |
Do a shallow copying from other container
~EdbusContainer | ( | ) | [inline, protected] |
Decrease reference counter and if reached 0 it will clear allocated data
void dispose | ( | void | ) | [inline, protected] |
Clears internal data
Referenced by EdbusContainer< EdbusData >::operator=(), and EdbusContainer< EdbusData >::~EdbusContainer().
EdbusContainer& operator= | ( | const EdbusContainer< T > & | other | ) | [inline, protected] |
Do a shallow copying from other container
void unhook | ( | void | ) | [inline, protected] |
Do actual copying. Referece counter is set to 1. This function must be called when inherited implementations do write or change internal data
EdbusContainerPrivate* impl [protected] |
Allows access to the private data by inherited classes
Referenced by EdbusContainer< EdbusData >::dispose(), EdbusContainer< EdbusData >::EdbusContainer(), EdbusContainer< EdbusData >::operator=(), EdbusContainer< EdbusData >::unhook(), and EdbusContainer< EdbusData >::~EdbusContainer().