|
||
class CObject : public CBase;
Implements reference counting to track concurrent references to itself.
An object of this type arranges automatic destruction of itself when the final reference is removed.
A reference counting object is any object which has CObject as its base class. Constructing a CObject derived type or calling
its CObject::Open()
member function adds a reference to that object by adding one to the reference count; calling its CObject::Close()
member function removes a reference by subtracting one from the reference count; when the last user of the object calls CObject::Close()
, the reference count becomes zero and the object is automatically destroyed.
CBase
-
Base class for all classes to be instantiated on the heap.
CObject
-
Implements reference counting to track concurrent references to itself.
Defined in CObject
:
AccessCount()const
Gets the number of open references to this reference counting object.CObject()
Constructs the object and initializes the reference count to one.Close()
Closes this reference counting object.Dec()
Subtracts one from the reference count.Extension_(TUint,TAny *&,TAny *)
Extension function FullName()const
Gets the full name of this reference counting object.Inc()
Adds one to the reference count.Name()const
Gets the name of this reference counting object.Open()
Opens this reference counting object.Owner()const
Gets a pointer to the reference counting object which owns this reference counti...SetName(const TDesC *)
Sets or clears this reference counting object's name.SetNameL(const TDesC *)
Sets or clears this reference counting object's name, and leaves on error.SetOwner(CObject *)
Sets the owner of this reference counting object.UniqueID()const
Gets this reference counting object's unique ID.~CObject()
Destructor.Inherited from CBase
:
Delete(CBase *)
Deletes the specified object.operator new(TUint)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TAny *)
Initialises the object to binary zeroes.operator new(TUint,TLeave)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TLeave,TUint)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TUint)
Allocates the object from the heap and then initialises its contents to binary z...IMPORT_C CObject();
Constructs the object and initializes the reference count to one.
Once constructed, a reference counting object cannot be deleted until its reference count is reduced to zero.
CObject::Close()
Closes this reference counting object.IMPORT_C ~CObject();
Destructor.
It removes this reference counting object from its object container, a CObjectCon
type.
|
IMPORT_C virtual TInt Open();
Opens this reference counting object.
The default behaviour increments the reference count by one and returns KErrNone. Where a derived class implements its own
version of this function, it must either use the protected member function CObject::Inc()
to increment the reference count or make a base call to this function.
|
IMPORT_C virtual void Close();
Closes this reference counting object.
The default behaviour decrements the reference count by one. If this becomes zero, then the function deletes this reference counting object.
Where a derived class implements its own version of this function, it can use the protected member function CObject::Dec()
to decrement the reference count or make a base call to this function.
|
IMPORT_C virtual TName Name() const;
Gets the name of this reference counting object.
The default behaviour provided by this function depends on whether a name has been explicitly set into the object:
if a name has previously been set, then the function returns that name.
if a name has not been set, then the function builds a default name. This is fourteen characters and has the format: LOCAL-nnnnnnnn where nnnnnnnn is the hexadecimal character representation of this reference counting object's address. This default name is, therefore, guaranteed to be unique within the current process.
|
IMPORT_C virtual TFullName FullName() const;
Gets the full name of this reference counting object.
By default, the full name is a concatenation of this reference counting object's name with the full name of its owning reference counting object.
|
IMPORT_C TInt SetName(const TDesC *aName);
Sets or clears this reference counting object's name.
To set the name, the specified descriptor must contain the name to be set. Once the name has been successfully set, then the specified source descriptor can be discarded.
To clear an existing name, specify a NULL argument.
|
|
|
IMPORT_C void SetNameL(const TDesC *aName);
Sets or clears this reference counting object's name, and leaves on error.
To set the name, the specified descriptor must contain the name to be set. Once the name has been successfully set, then the specified source descriptor can be discarded.
To clear an existing name, specify a NULL argument.
The function leaves if there is insufficient memory.
|
|
inline CObject* Owner() const;
Gets a pointer to the reference counting object which owns this reference counting object.
|
inline void SetOwner(CObject *anOwner);
Sets the owner of this reference counting object.
If this reference counting object already has an owner, then all knowledge of that owner is lost.
|
inline TInt AccessCount() const;
Gets the number of open references to this reference counting object.
|
protected: IMPORT_C virtual TInt Extension_(TUint aExtensionId, TAny *&a0, TAny *a1);
Extension function
|
|
protected: inline TInt UniqueID() const;
Gets this reference counting object's unique ID.
The unique ID is an integer which is a property of the object container. It forms part of the identity of all reference counting objects and is the same value for all reference counting objects held within the same object container.
|
protected: inline void Inc();
Adds one to the reference count.
This function is called by the default implementation of the CObject::Open()
member function of this class.
CObject::Open()
Opens this reference counting object.protected: inline void Dec();
Subtracts one from the reference count.
This function is called by the default implementation of the CObject::Close()
member function of this class.
CObject::Close()
Closes this reference counting object.