Allows a thread or process to identify an object which is owned or managed by another thread or process. Handles allow a client to access, or refer to, Kernel objects.
All handles are instances of classes derived from RHandleBase
. Interactions between the holder of a handle and the object which the handle represents are mediated through the Kernel. Handles are also used in client-server relations; the client side refers to a server side session through a handle, an
RSessionBase
object.
The handle class, RHandleBase
, encapsulates the basic behaviour common to all handles; for example, Close()
to close a handle. In particular, the class hides 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
, RMutex
, RThread
etc.