#include <NVList.h>
Collaboration diagram for CORBA::NVList:
Public Types | |
typedef NVList_ptr | _ptr_type |
typedef NVList_var | _var_type |
Public Member Functions | |
ULong | count (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const |
return the current number of elements in the list | |
NamedValue_ptr | add (Flags ACE_ENV_ARG_DECL_WITH_DEFAULTS) |
add an element and just initialize the flags | |
NamedValue_ptr | add_item (const char *, Flags ACE_ENV_ARG_DECL_WITH_DEFAULTS) |
add an element and initialize its name and flags | |
NamedValue_ptr | add_value (const char *, const Any &, Flags ACE_ENV_ARG_DECL_WITH_DEFAULTS) |
initializes a value, name, and flags | |
NamedValue_ptr | add_item_consume (char *, Flags ACE_ENV_ARG_DECL_WITH_DEFAULTS) |
NamedValue_ptr | add_value_consume (char *, Any_ptr, Flags ACE_ENV_ARG_DECL_WITH_DEFAULTS) |
NamedValue_ptr | item (ULong n ACE_ENV_ARG_DECL_WITH_DEFAULTS) |
retrieve the item at the nth location. Raises Bounds | |
void | remove (ULong n ACE_ENV_ARG_DECL_WITH_DEFAULTS) |
remove element at index n. Raises Bounds | |
ULong | _incr_refcnt (void) |
ULong | _decr_refcnt (void) |
void | _tao_incoming_cdr (TAO_InputCDR &cdr, int flag, bool &lazy_evaluation ACE_ENV_ARG_DECL) |
void | _tao_encode (TAO_OutputCDR &cdr, int flag ACE_ENV_ARG_DECL_WITH_DEFAULTS) |
void | _tao_decode (TAO_InputCDR &cdr, int flag ACE_ENV_ARG_DECL) |
Decode the NVList arguments from the <cdr> stream. | |
ptrdiff_t | _tao_target_alignment (void) |
Boolean | _lazy_has_arguments (void) const |
Static Public Member Functions | |
NVList * | _duplicate (NVList *) |
NVList * | _nil (void) |
Protected Member Functions | |
~NVList (void) | |
Destructor. | |
Private Member Functions | |
NVList (void) | |
NamedValue_ptr | add_element (Flags ACE_ENV_ARG_DECL_WITH_DEFAULTS) |
void | evaluate (ACE_ENV_SINGLE_ARG_DECL) |
Private Attributes | |
ACE_Unbounded_Queue< NamedValue_ptr > | values_ |
internal list of parameters stored as NamedValues | |
ULong | max_ |
maximum length of list | |
ULong | refcount_ |
maintains how many references exist to this object | |
TAO_SYNCH_MUTEX | refcount_lock_ |
Protects the reference count. | |
TAO_InputCDR * | incoming_ |
int | incoming_flag_ |
Friends | |
class | ORB |
class | Request |
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.
|
|
|
|
|
Destructor. Protected destructor to enforce proper memory management through the reference counting mechanism. |
|
constructor - cannot be instantiated directly other than through the CORBA::ORB::create_list method |
|
|
|
|
|
|
|
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). |
|
|
|
Decode the NVList arguments from the <cdr> stream.
|
|
Encode the NVList into the CDR stream. <flag> masks the type of arguments (IN, OUT or INOUT) that are to be marshaled. |
|
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 |
|
Return the required alignment to marshal the NVList without any re-alignment. It returns ACE_CDR::MAX_ALIGNMENT to indicate errors. |
|
add an element and just initialize the flags
|
|
helper to increase the list size. This is used by all the add_ methods of the NVList class |
|
add an element and initialize its name and flags
|
|
just like add_item. In addition, memory management of char * name is taken over by the NVList |
|
initializes a value, name, and flags
|
|
just like add_value. In addition, the NVList controls the memory management of the char *name and Any *value parameter |
|
return the current number of elements in the list
|
|
Lazy evaluation routine to fill up the Anys in the NVList from the CDR stream. |
|
retrieve the item at the nth location. Raises Bounds
|
|
remove element at index n. Raises Bounds
|
|
|
|
|
|
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. |
|
The flags used to check which parameters are actually extracted from the <incoming_> buffer |
|
maximum length of list
|
|
maintains how many references exist to this object
|
|
Protects the reference count.
|
|
internal list of parameters stored as NamedValues
|