Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# TAO_Valuetype_Manager Class Template Reference

Manager for valuetypes. More...

`#include <Sequence_T.h>`

Collaboration diagram for TAO_Valuetype_Manager:

[legend]
List of all members.

## Public Methods
| TAO_Valuetype_Manager (const TAO_Valuetype_Manager< T, T_var > &rhs)
| TAO_Valuetype_Manager (T **, CORBA::Boolean release)
| ~TAO_Valuetype_Manager (void)
| Destructor, only releases the object if <release_> is true. More...
TAO_Valuetype_Manager< T, T_var > & | operator= (const TAO_Valuetype_Manager< T, T_var > &rhs)
TAO_Valuetype_Manager< T, T_var > & | operator= (T *)
| Assignment from T *. More...
TAO_Valuetype_Manager< T, T_var > & | operator= (const T_var &)
| Assignment from T_var. More...
T * | operator-> (void) const
| Return pointer. More...
| operator const T * () const
| Cast (read-only). More...
| operator T *& ()
| Cast. More...
| operator const T_var () const
| Cast (read-only) so that assignment from a structured type to a T_var will make a copy. More...
T * | in (void) const
| for in parameter. More...
T *& | inout (void)
| for inout parameter. More...
T *& | out (void)
| for out parameter. More...
T * | _retn (void)
| for return type. More...
## Private Attributes
T ** | ptr_
| data member, notice that it is a pointer, to implement the reference behavior for assignment. More...
CORBA::Boolean | release_
| release flag based on parent's flag. More...
## Friends
class | TAO_Unbounded_Valuetype_Sequence< T, T_var >

## Detailed Description

### template<class T, class T_var>
class TAO_Valuetype_Manager< T, T_var >

Manager for valuetypes.

According to the spec., valuetypes are handled similarly to object references, so a manager class is needed.

See also:
  TAO_Object_Manager

## Constructor & Destructor Documentation

template<class T, class T_var>
ACE_INLINE TAO_Valuetype_Manager< T, T_var >::TAO_Valuetype_Manager | ( | const TAO_Valuetype_Manager< T, T_var > & | rhs | ) |

| Copy constructor, the semantics are non-trivial: + The referenced element is duplicated or not according to the release value on the <rhs>. + In any case a new reference to the same object is created.

template<class T, class T_var>
ACE_INLINE TAO_Valuetype_Manager< T, T_var >::TAO_Valuetype_Manager | ( | T ** | buffer,
|  | CORBA::Boolean | release
| ) |

| Constructor from address of an element, it should be private and only TAO_*_Object_Sequence would use it, but we have some problems with friendship and templates.

template<class T, class T_var>
ACE_INLINE TAO_Valuetype_Manager< T, T_var >::~TAO_Valuetype_Manager | ( | void |  | ) |

| Destructor, only releases the object if <release_> is true.

## Member Function Documentation

template<class T, class T_var>
ACE_INLINE T * TAO_Valuetype_Manager< T, T_var >::_retn | ( | void |  | ) |

| for return type.

template<class T, class T_var>
ACE_INLINE T * TAO_Valuetype_Manager< T, T_var >::in | ( | void |  | ) | const

| for in parameter.

template<class T, class T_var>
ACE_INLINE T *& TAO_Valuetype_Manager< T, T_var >::inout | ( | void |  | ) |

| for inout parameter.

template<class T, class T_var>
ACE_INLINE TAO_Valuetype_Manager< T, T_var >::operator const T * | ( |  | ) | const

| Cast (read-only).

template<class T, class T_var>
ACE_INLINE TAO_Valuetype_Manager< T, T_var >::operator const T_var | ( |  | ) | const

| Cast (read-only) so that assignment from a structured type to a T_var will make a copy.

template<class T, class T_var>
ACE_INLINE TAO_Valuetype_Manager< T, T_var >::operator T *& | ( |  | ) |

| Cast.

template<class T, class T_var>
ACE_INLINE T * TAO_Valuetype_Manager< T, T_var >::operator-> | ( | void |  | ) | const

| Return pointer.

template<class T, class T_var>
TAO_Valuetype_Manager< T, T_var > & TAO_Valuetype_Manager< T, T_var >::operator= | ( | const T_var & | p | ) |

| Assignment from T_var.

template<class T, class T_var>
TAO_Valuetype_Manager< T, T_var > & TAO_Valuetype_Manager< T, T_var >::operator= | ( | T * | p | ) |

| Assignment from T *.

template<class T, class T_var>
TAO_Valuetype_Manager< T, T_var > & TAO_Valuetype_Manager< T, T_var >::operator= | ( | const TAO_Valuetype_Manager< T, T_var > & | rhs | ) |

| Assignment from another managed type, only release if <this->release_> is true. @ TODO what happens if rhs.release_ is true an this->relase_ is false?

template<class T, class T_var>
ACE_INLINE T *& TAO_Valuetype_Manager< T, T_var >::out | ( | void |  | ) |

| for out parameter.

## Friends And Related Function Documentation

template<class T, class T_var>
friend class TAO_Unbounded_Valuetype_Sequence< T, T_var >`[friend]`

## Member Data Documentation

template<class T, class T_var>
T** TAO_Valuetype_Manager::ptr_`[private]`

| data member, notice that it is a pointer, to implement the reference behavior for assignment.

template<class T, class T_var>
CORBA::Boolean TAO_Valuetype_Manager::release_`[private]`

| release flag based on parent's flag.

The documentation for this class was generated from the following files:

- Sequence_T.h
- Sequence_T.cpp
- Sequence_T.i