Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class 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 >:

Inheritance graph
[legend]
Collaboration diagram for TAO_Unbounded_Pseudo_Sequence< T >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 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 Member Functions

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:
Generated on Fri Dec 31 15:33:21 2004 for TAO by  doxygen 1.3.9.1