This interface is proxy to the adapted object.
In order to make it possible to have weak references to objects,
the XAdapter interface must be implemented to provide
a weak adapter for the clients.
Concept of weak referencing:
This module specifies the interfaces for implementing and using
weak references.
The sense of weak references is to hold a reference to an object
without affecting the lifetime of the object. That means that a weak
reference may become invalid, at any time, if the referenced object dies.
The following interfaces describe one way to handle weak references
by providing a weak adapter. The weak object has to provide this
adapter if anyone wants to hold a weak reference. To separate their
lifetimes, the adapter and the original object must not share the same
reference counter. The weak reference is in fact only a hard reference
to the adapter, which knows - but does not hold - the original object.
That means that the implementation and synchronization of weak
referencing is the responsibility of the object. The following
interfaces are involved in the concept of weak referencing:
-
XWeak
- is the server-side interface of the referred object. This
referred object must support the XAdapter interface.
-
XReference
- is a client-side interface which must be implemented by
the holder of any weak reference. It is used for notification
when the adapted object dies.