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*>.