Location:
e32cmn.h
Link against: euser.lib
class RHandleBase;
A handle to an object.
The class encapsulates the basic behaviour of a handle, hiding the handle-number which identifies the object which the handle represents.
The class is abstract in the sense that a RHandleBase object is never explicitly instantiated. It is always a base class to
a concrete handle class; for example, RSemaphore
, RThread
, RProcess
, RCriticalSection
etc.
Defined in RHandleBase
:
Attributes()
, Close()
, Duplicate()
, FullName()
, FullName()
, Handle()
, HandleInfo()
, Name()
, Open()
, RHandleBase()
, RHandleBase()
, SetHandle()
, SetHandleNC()
, SetReturnedHandle()
, iHandle
protected: inline RHandleBase(TInt aHandle);
Copy constructor.
It constructs this handle from an existing one. Specifically, the handle-number encapsulated by the specified handle is copied to this handle.
|
inline TInt Handle() const;
Retrieves the handle-number of the object associated with this handle.
|
inline void SetHandle(TInt aHandle);
Sets the handle-number of this handle to the specified value.
|
inline TInt SetReturnedHandle(TInt aHandleOrError);
Sets the handle-number of this handle to the specified value.
The function can take a (zero or positive) handle-number, or a (negative) error number.
If aHandleOrError represents a handle-number, then the handle-number of this handle is set to that value. If aHandleOrError represents an error number, then the handle-number of this handle is set to zero and the negative value is returned.
|
|
IMPORT_C void Close();
Closes the handle.
This has the effect of closing the associated kernel side object.
As the associated object is a reference counting object, it is destroyed if there are no other open references to it.
IMPORT_C TName Name() const;
Gets the name of the handle.
|
IMPORT_C TFullName FullName() const;
Gets the full name of the handle.
Note: This method is stack consuming (it takes 512 bytes on stack to execute). For an alternative way to obtain the full name
of the object, see RHandleBase::FullName(TDes& aName) const
.
|
IMPORT_C void FullName(TDes &aName) const;
Gets the full name of the handle.
|
|
IMPORT_C void SetHandleNC(TInt aHandle);
Sets the handle-number of this handle to the specified value, and marks it as not closable.
|
IMPORT_C TInt Duplicate(const RThread &aSrc, TOwnerType aType=EOwnerProcess);
Creates a valid handle to the kernel object for which the specified thread already has a handle.
The function assumes that this handle has been copy constructed from an existing handle (or the handle-number has been explicitly
copied through calls to Handle()
and SetHandle()
).
By default, any thread in the process can use this handle to access the kernel side object that the handle represents. However, specifying EOwnerThread as the second parameter to this function, means that only the creating thread can use this handle to access the kernel side object; any other thread in this process that wants to access the kernel side object must, again, duplicate this handle.
|
|
IMPORT_C void HandleInfo(THandleInfo *anInfo);
Gets information about the handle.
|
protected: IMPORT_C TInt Open(const TFindHandleBase &aHandle, TOwnerType aType);
Opens a handle to a kernel side object found using a find-handle object.
|
|
protected: TInt iHandle;