This document provides an overview of handles.
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,
anRSessionBase object.
The
handle class, RHandleBase, encapsulates the basic behavior
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.