#include <coherence/lang/ChainedHandleElement.hpp>
Inherited by TypedHandle, TypedHandle< coherence::security::auth::Subject >, and TypedHolder.
The base class for TypedHandles, allowing for reference chaining. Reference chaining is not thread-safe and thus may only be used for handles which are not shared across threads.
Protected Types | |
| enum | Action |
| Action to take on unlinking. | |
Protected Member Functions | |
| ChainedHandleElement (bool fView) | |
| Create an independent element. | |
| ChainedHandleElement (const ChainedHandleElement &that, bool fView) | |
| Create a dependent element, adding it to a chain. | |
| ChainedHandleElement (const ChainedHandleElement *that, bool fView) | |
| Create an optionally dependent element. | |
| Action | unlink () |
| No destructor, derived class must perform unlink and take resulting action. | |
| Action | link (const ChainedHandleElement &that) |
| Link this element to a new chain. | |
| bool | scan () |
| Scan the chain for additional handles. | |
Protected Attributes | |
|
ChainedHandleElement const * | m_prev |
| The previous element in the chain. | |
|
ChainedHandleElement const * | m_next |
| The next element in the chain. | |
| bool | m_fView |
| Flag indicating if the associated handle is a view. | |
| Action unlink | ( | ) | [inline, protected] |
No destructor, derived class must perform unlink and take resulting action.
Unlink this element from the chain.
| Action link | ( | const ChainedHandleElement & | that | ) | [inline, protected] |
Link this element to a new chain.
| bool scan | ( | ) | [inline, protected] |
Scan the chain for additional handles.
The caller must be a handle, and have found views on both sides.