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

TAO_Unbounded_Valuetype_Sequence Class Template Reference

Parametric sequence for valuetypes. More...

#include <Sequence_T.h>

Inheritance diagram for TAO_Unbounded_Valuetype_Sequence:

Inheritance graph
[legend]
Collaboration diagram for TAO_Unbounded_Valuetype_Sequence:

Collaboration graph
[legend]
List of all members.

Public Methods

 TAO_Unbounded_Valuetype_Sequence (void)
 TAO_Unbounded_Valuetype_Sequence (CORBA::ULong max)
 Constructor with a "hint" for the maximum capacity. More...

 TAO_Unbounded_Valuetype_Sequence (CORBA::ULong maximum, CORBA::ULong length, T **data, CORBA::Boolean release=0)
 Constructor with a given buffer. More...

 TAO_Unbounded_Valuetype_Sequence (const TAO_Unbounded_Valuetype_Sequence< T, T_var > &)
 Copy ctor, deep copies. More...

 ~TAO_Unbounded_Valuetype_Sequence (void)
 The destructor releases all object reference memebrs and frees all string members. More...

TAO_Unbounded_Valuetype_Sequence<
T, T_var > & 
operator= (const TAO_Unbounded_Valuetype_Sequence< T, T_var > &)
 The assignment operator first releases all object reference members and frees all string members, and then performs a deepcopy to create a new structure. More...

TAO_Valuetype_Manager< T,
T_var > 
operator[] (CORBA::ULong slot) const
 read-write accessor. More...

virtual void _allocate_buffer (CORBA::ULong length)
 No default to workaround egcs problem with templates and namespaces. More...

virtual void _deallocate_buffer (void)
 Must deallocate the buffer and then set it to zero. More...

virtual void _shrink_buffer (CORBA::ULong new_length, CORBA::ULong old_length)
 Some sequences (of objects and strings) require some cleanup if the sequence is shrunk. More...


Static Public Methods

T ** allocbuf (CORBA::ULong)
 The allocbuf function allocates a vector of T elements that can be passed to the T *data constructor. More...

void freebuf (T **)
 Release all the elements. More...


Detailed Description

template<class T, class T_var>
class TAO_Unbounded_Valuetype_Sequence< T, T_var >

Parametric sequence for valuetypes.

See also:
TAO_Unbounded_Object_Sequence


Constructor & Destructor Documentation

template<class T, class T_var>
ACE_INLINE TAO_Unbounded_Valuetype_Sequence< T, T_var >::TAO_Unbounded_Valuetype_Sequence void   
 

template<class T, class T_var>
TAO_Unbounded_Valuetype_Sequence< T, T_var >::TAO_Unbounded_Valuetype_Sequence CORBA::ULong    maximum
 

Constructor with a "hint" for the maximum capacity.

template<class T, class T_var>
ACE_INLINE TAO_Unbounded_Valuetype_Sequence< T, T_var >::TAO_Unbounded_Valuetype_Sequence CORBA::ULong    maximum,
CORBA::ULong    length,
T **    value,
CORBA::Boolean    release = 0
 

Constructor with a given buffer.

template<class T, class T_var>
TAO_Unbounded_Valuetype_Sequence< T, T_var >::TAO_Unbounded_Valuetype_Sequence const TAO_Unbounded_Valuetype_Sequence< T, T_var > &    rhs
 

Copy ctor, deep copies.

template<class T, class T_var>
TAO_Unbounded_Valuetype_Sequence< T, T_var >::~TAO_Unbounded_Valuetype_Sequence void   
 

The destructor releases all object reference memebrs and frees all string members.


Member Function Documentation

template<class T, class T_var>
void TAO_Unbounded_Valuetype_Sequence< T, T_var >::_allocate_buffer CORBA::ULong    length [virtual]
 

No default to workaround egcs problem with templates and namespaces.

Reimplemented from TAO_Base_Sequence.

template<class T, class T_var>
void TAO_Unbounded_Valuetype_Sequence< T, T_var >::_deallocate_buffer void    [virtual]
 

Must deallocate the buffer and then set it to zero.

Reimplemented from TAO_Base_Sequence.

template<class T, class T_var>
void TAO_Unbounded_Valuetype_Sequence< T, T_var >::_shrink_buffer CORBA::ULong    nl,
CORBA::ULong    ol
[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<class T, class T_var>
T ** TAO_Unbounded_Valuetype_Sequence< T, T_var >::allocbuf CORBA::ULong    nelems [static]
 

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

template<class T, class T_var>
void TAO_Unbounded_Valuetype_Sequence< T, T_var >::freebuf T **    buffer [static]
 

Release all the elements.

template<class T, class T_var>
TAO_Unbounded_Valuetype_Sequence< T, T_var > & TAO_Unbounded_Valuetype_Sequence< T, T_var >::operator= const TAO_Unbounded_Valuetype_Sequence< T, T_var > &    rhs
 

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<class T, class T_var>
ACE_INLINE TAO_Valuetype_Manager< T, T_var > TAO_Unbounded_Valuetype_Sequence< T, T_var >::operator[] CORBA::ULong    slot const
 

read-write accessor.


The documentation for this class was generated from the following files:
Generated on Thu Oct 10 18:55:48 2002 for TAO by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001