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

# TAO_Unbounded_Pseudo_Sequence< T > Class Template Reference

Parametric sequence for pseudo objects. More...

`#include <Sequence_T.h>`

Inheritance diagram for TAO_Unbounded_Pseudo_Sequence< T >:

[legend]
Collaboration diagram for TAO_Unbounded_Pseudo_Sequence< T >:

[legend]
List of all members.

## Public Methods

| TAO_Unbounded_Pseudo_Sequence (void)
| default ctor
| TAO_Unbounded_Pseudo_Sequence (CORBA::ULong max)
| Constructor with a "hint" for the maximum capacity.
| TAO_Unbounded_Pseudo_Sequence (CORBA::ULong maximum, CORBA::ULong length, T **data, CORBA::Boolean release=0)
| Constructor with a given buffer.
| TAO_Unbounded_Pseudo_Sequence (const TAO_Unbounded_Pseudo_Sequence< T > &)
| Copy ctor, deep copies.
| ~TAO_Unbounded_Pseudo_Sequence (void)
| dtor releases all the contained elements.
TAO_Unbounded_Pseudo_Sequence< T > & | operator= (const TAO_Unbounded_Pseudo_Sequence< T > &)
TAO_Pseudo_Object_Manager< T > | operator[] (CORBA::ULong slot) const
| read-write accessor
virtual void | _allocate_buffer (CORBA::ULong length)
virtual void | _deallocate_buffer (void)
| Must deallocate the buffer and then set it to zero.
virtual void | _shrink_buffer (CORBA::ULong new_length, CORBA::ULong old_length)

## Static Public Methods

T ** | allocbuf (CORBA::ULong)
void | freebuf (T **)
| Release all the elements.

## Detailed Description

### template<typename T>
class TAO_Unbounded_Pseudo_Sequence< T >

Parametric sequence for pseudo objects.

Some IDL types (including pseudo objects) require that sequences on them have a "manager" class, in charge of handling the object lifetime. This parametric class implements those sequences. In general the sequence is similar to Object_Sequente, except for some TAO internal details. The complete documentation of each method is provided in TAO_Unbounded_Object_Sequece

## Constructor & Destructor Documentation

template<typename T>
ACE_INLINE TAO_Unbounded_Pseudo_Sequence< T >::TAO_Unbounded_Pseudo_Sequence | ( | void |  | ) |

| default ctor

template<typename T>
TAO_Unbounded_Pseudo_Sequence< T >::TAO_Unbounded_Pseudo_Sequence | ( | CORBA::ULong | max | ) |

| Constructor with a "hint" for the maximum capacity.

template<typename T>
ACE_INLINE TAO_Unbounded_Pseudo_Sequence< T >::TAO_Unbounded_Pseudo_Sequence | ( | CORBA::ULong | maximum,
|  | CORBA::ULong | length,
|  | T ** | data,
|  | CORBA::Boolean | release = 0
| ) |

| Constructor with a given buffer.

template<typename T>
TAO_Unbounded_Pseudo_Sequence< T >::TAO_Unbounded_Pseudo_Sequence | ( | const TAO_Unbounded_Pseudo_Sequence< T > & |  | ) |

| Copy ctor, deep copies.

template<typename T>
TAO_Unbounded_Pseudo_Sequence< T >::~TAO_Unbounded_Pseudo_Sequence | ( | void |  | ) |

| dtor releases all the contained elements.

## Member Function Documentation

template<typename T>
void TAO_Unbounded_Pseudo_Sequence< T >::_allocate_buffer | ( | CORBA::ULong | length | ) | `[virtual]`

| Ensure that the buffer contains space for at least <length> elements. The constructor must be called for any new elements, the old ones (if any) must be copied into the buffer using operator= and then their destructors must be called. Finally the old buffer must be released. Implements TAO_Base_Sequence.

template<typename T>
void TAO_Unbounded_Pseudo_Sequence< T >::_deallocate_buffer | ( | void |  | ) | `[virtual]`

| Must deallocate the buffer and then set it to zero. Implements TAO_Base_Sequence.

template<typename T>
void TAO_Unbounded_Pseudo_Sequence< T >::_shrink_buffer | ( | CORBA::ULong | new_length,
|  | CORBA::ULong | old_length
| ) | `[virtual]`

| Some sequences (of objects and strings) require some cleanup if the sequence is shrunk. The spec requires the destructor to release the objects only from position <0> to <length-1>; so shrink and then delete could result in a memory leak. Reimplemented from TAO_Base_Sequence.

template<typename T>
T ** TAO_Unbounded_Pseudo_Sequence< T >::allocbuf | ( | CORBA::ULong |  | ) | `[static]`

| The allocbuf function allocates a vector of T elements that can be passed to the T *data constructor.

template<typename T>
void TAO_Unbounded_Pseudo_Sequence< T >::freebuf | ( | T ** |  | ) | `[static]`

| Release all the elements.

template<typename T>
TAO_Unbounded_Pseudo_Sequence< T > & TAO_Unbounded_Pseudo_Sequence< T >::operator= | ( | const TAO_Unbounded_Pseudo_Sequence< T > & |  | ) |

| The assignment operator first releases all object reference members and frees all string members, and then performs a deepcopy to create a new structure.

template<typename T>
ACE_INLINE TAO_Pseudo_Object_Manager< T > TAO_Unbounded_Pseudo_Sequence< T >::operator[] | ( | CORBA::ULong | slot | ) | const

| read-write accessor

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

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