Public Methods |
| TAO_Object_Manager (const TAO_Object_Manager<T,T_var> &rhs) |
| TAO_Object_Manager (T **, CORBA::Boolean release) |
| ~TAO_Object_Manager (void) |
| Destructor, only releases the object if <release_> is true.
|
TAO_Object_Manager<T,T_var>& | operator= (const TAO_Object_Manager<T,T_var> &rhs) |
TAO_Object_Manager<T,T_var>& | operator= (T *) |
| Assignment from T *.
|
TAO_Object_Manager<T,T_var>& | operator= (const T_var &) |
| Assignment from T_var.
|
T* | operator-> (void) const |
| Return pointer.
|
| operator const T * () const |
| Cast (read-only).
|
| operator T *& () |
| Cast.
|
| operator const T_var () const |
| Cast (read-only) so that assignment from a structured type to a T_var will make a copy.
|
T* | in (void) const |
| for in parameter.
|
T*& | inout (void) |
| for inout parameter.
|
T*& | out (void) |
| for out parameter.
|
T* | _retn (void) |
| for return type.
|
Private Attributes |
T** | ptr_ |
| data member, notice that it is a pointer, to implement the reference behavior for assignment.
|
CORBA::Boolean | release_ |
| release flag based on parent's flag.
|
Friends |
class | TAO_Unbounded_Object_Sequence< T,T_var > |
The mapping for sequences of objects (and other pseudo objects) requires an auxiliar class or <Manager> to handle the reference count on the object, (a kind of smart pointer). The main difference with respect to T_var classes is that automatic release is not controlled on a per-item basis, but for the sequence as a whole. Further the class must implement "transparent" assignment into the sequence, for instance, operator[] returns a managed object, but: object_sequence[i] = foo; must change the state of the sequence. This class implements the generic object manager and is used to instantiate the proper sequence types. = NOTES It has been proposed that the class should be parametric on both T and T_ptr, IMHO this is no necesary: though the IDL spec says that T_ptr *could* map to a type different to T* in the particular case of TAO it does map to <T*>.