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

CORBA_NVList Class Reference

NVList ... this is used in the (client side) DII (Dynamic Invocation Interface) to hold parameters, except for the return parameter. It's used in the same role in the (server side) DSI (Dynamic Skeleton Interface). More...

#include <NVList.h>

Collaboration diagram for CORBA_NVList:

Collaboration graph
[legend]
List of all members.

Public Types

typedef CORBA_NVList_ptr _ptr_type
typedef CORBA_NVList_var _var_type

Public Methods

 ~CORBA_NVList (void)
 destructor. More...

CORBA::ULong count (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
 return the current number of elements in the list. More...

CORBA_NamedValue_ptr add (CORBA::Flags ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 add an element and just initialize the flags. More...

CORBA_NamedValue_ptr add_item (const char *, CORBA::Flags ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 add an element and initialize its name and flags. More...

CORBA_NamedValue_ptr add_value (const char *, const CORBA::Any &, CORBA::Flags ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 initializes a value, name, and flags. More...

CORBA_NamedValue_ptr add_item_consume (char *, CORBA::Flags ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 just like add_item. In addition, memory management of char * name is taken over by the NVList. More...

CORBA_NamedValue_ptr add_value_consume (char *, CORBA::Any_ptr, CORBA::Flags ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 just like add_value. In addition, the NVList controls the memory management of the char *name and Any *value parameter. More...

CORBA_NamedValue_ptr item (CORBA::ULong n ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 retrieve the item at the nth location. Raises Bounds. More...

void remove (CORBA::ULong n ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 remove element at index n. Raises Bounds. More...

CORBA::ULong _incr_refcnt (void)
CORBA::ULong _decr_refcnt (void)
void _tao_incoming_cdr (TAO_InputCDR &cdr, int flag, int &lazy_evaluation ACE_ENV_ARG_DECL)
 Set the incoming CDR stream, this is used by TAO to perform lazy evaluation of the NVList in an incoming ServerRequest. More...

void _tao_encode (TAO_OutputCDR &cdr, TAO_ORB_Core *orb_core, int flag ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 Encode the NVList into the CDR stream. <flag> masks the type of arguments (IN, OUT or INOUT) that are to be marshaled. More...

void _tao_decode (TAO_InputCDR &cdr, int flag ACE_ENV_ARG_DECL)
 Decode the NVList arguments from the <cdr> stream. More...

ptr_arith_t _tao_target_alignment (void)
 Return the required alignment to marshal the NVList without any re-alignment. More...

CORBA::Boolean _lazy_has_arguments (void) const
 If this list is used by a DII request, this will tell us if our CDR stream contains any marshaled arguments (needed for GIOP 1.2). More...


Static Public Methods

CORBA_NVList * _duplicate (CORBA_NVList *)
CORBA_NVList * _nil (void)

Private Methods

 CORBA_NVList (void)
 constructor - cannot be instantiated directly other than through the ORB::create_list method. More...

CORBA_NamedValue_ptr add_element (CORBA::Flags ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 helper to increase the list size. This is used by all the add_ methods of the NVList class. More...

void evaluate (ACE_ENV_SINGLE_ARG_DECL)
 Lazy evaluation routine to fill up the Anys in the NVList from the CDR stream. More...


Private Attributes

ACE_Unbounded_Queue< CORBA_NamedValue_ptrvalues_
 internal list of parameters stored as NamedValues. More...

CORBA::ULong max_
 maximum length of list. More...

CORBA::ULong refcount_
 maintains how many references exist to this object. More...

TAO_SYNCH_MUTEX refcount_lock_
 Protects the reference count. More...

TAO_InputCDRincoming_
 When the NVList is used as part of a Server Request we can simply store the CDR buffer and perform lazy evaluation to compute the Anys. More...

int incoming_flag_
 The flags used to check which parameters are actually extracted from the <incoming_> buffer. More...


Friends

class CORBA_ORB
class CORBA_Request

Detailed Description

NVList ... this is used in the (client side) DII (Dynamic Invocation Interface) to hold parameters, except for the return parameter. It's used in the same role in the (server side) DSI (Dynamic Skeleton Interface).

Each user (client, server) provides the typecode and memory for each parameter using an NVList, then talks to the ORB using a Request or ServerRequest pseudo-object. The ORB copies data to/from the IPC messages (e.g. IIOP::Request, IIOP::Response) as appropriate.


Member Typedef Documentation

typedef CORBA_NVList_ptr CORBA_NVList::_ptr_type
 

typedef CORBA_NVList_var CORBA_NVList::_var_type
 


Constructor & Destructor Documentation

CORBA_NVList::~CORBA_NVList void   
 

destructor.

ACE_INLINE CORBA_NVList::CORBA_NVList void    [private]
 

constructor - cannot be instantiated directly other than through the ORB::create_list method.


Member Function Documentation

CORBA::ULong CORBA_NVList::_decr_refcnt void   
 

ACE_INLINE CORBA_NVList * CORBA_NVList::_duplicate CORBA_NVList *    x [static]
 

CORBA::ULong CORBA_NVList::_incr_refcnt void   
 

CORBA::Boolean CORBA_NVList::_lazy_has_arguments void    const
 

If this list is used by a DII request, this will tell us if our CDR stream contains any marshaled arguments (needed for GIOP 1.2).

ACE_INLINE CORBA_NVList * CORBA_NVList::_nil void    [static]
 

void CORBA_NVList::_tao_decode TAO_InputCDR   incoming,
int flag    ACE_ENV_ARG_DECL
 

Decode the NVList arguments from the <cdr> stream.

void CORBA_NVList::_tao_encode TAO_OutputCDR   cdr,
TAO_ORB_Core   orb_core,
int flag    ACE_ENV_ARG_DECL
 

Encode the NVList into the CDR stream. <flag> masks the type of arguments (IN, OUT or INOUT) that are to be marshaled.

void CORBA_NVList::_tao_incoming_cdr TAO_InputCDR   cdr,
int    flag,
int &lazy_evaluation    ACE_ENV_ARG_DECL
 

Set the incoming CDR stream, this is used by TAO to perform lazy evaluation of the NVList in an incoming ServerRequest.

The <flag> is used to check which parameters (IN, OUT and/or INOUT) are to be extracted

ptr_arith_t CORBA_NVList::_tao_target_alignment void   
 

Return the required alignment to marshal the NVList without any re-alignment.

It returns ACE_CDR::MAX_ALIGNMENT to indicate errors.

CORBA::NamedValue_ptr CORBA_NVList::add CORBA::Flags    flags
 

add an element and just initialize the flags.

CORBA::NamedValue_ptr CORBA_NVList::add_element CORBA::Flags    flags [private]
 

helper to increase the list size. This is used by all the add_ methods of the NVList class.

CORBA::NamedValue_ptr CORBA_NVList::add_item const char *    name,
CORBA::Flags    flags
 

add an element and initialize its name and flags.

CORBA::NamedValue_ptr CORBA_NVList::add_item_consume char *    name,
CORBA::Flags    flags
 

just like add_item. In addition, memory management of char * name is taken over by the NVList.

CORBA::NamedValue_ptr CORBA_NVList::add_value const char *    name,
const CORBA::Any   value,
CORBA::Flags    flags
 

initializes a value, name, and flags.

CORBA_NamedValue_ptr CORBA_NVList::add_value_consume char *   ,
CORBA::Any_ptr   ,
CORBA::Flags    ACE_ENV_ARG_DECL_WITH_DEFAULTS
 

just like add_value. In addition, the NVList controls the memory management of the char *name and Any *value parameter.

ACE_INLINE CORBA::ULong CORBA_NVList::count ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS    const
 

return the current number of elements in the list.

void CORBA_NVList::evaluate ACE_ENV_SINGLE_ARG_DECL    [private]
 

Lazy evaluation routine to fill up the Anys in the NVList from the CDR stream.

CORBA::NamedValue_ptr CORBA_NVList::item CORBA::ULong   ACE_ENV_ARG_DECL
 

retrieve the item at the nth location. Raises Bounds.

void CORBA_NVList::remove CORBA::ULong    ACE_ENV_ARG_DECL_NOT_USED
 

remove element at index n. Raises Bounds.


Friends And Related Function Documentation

friend class CORBA_ORB [friend]
 

friend class CORBA_Request [friend]
 


Member Data Documentation

TAO_InputCDR* CORBA_NVList::incoming_ [private]
 

When the NVList is used as part of a Server Request we can simply store the CDR buffer and perform lazy evaluation to compute the Anys.

int CORBA_NVList::incoming_flag_ [private]
 

The flags used to check which parameters are actually extracted from the <incoming_> buffer.

CORBA::ULong CORBA_NVList::max_ [private]
 

maximum length of list.

CORBA::ULong CORBA_NVList::refcount_ [private]
 

maintains how many references exist to this object.

TAO_SYNCH_MUTEX CORBA_NVList::refcount_lock_ [private]
 

Protects the reference count.

ACE_Unbounded_Queue<CORBA_NamedValue_ptr> CORBA_NVList::values_ [private]
 

internal list of parameters stored as NamedValues.


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