diff options
Diffstat (limited to 'TAO/IIOP/lib/nvlist.h')
-rw-r--r-- | TAO/IIOP/lib/nvlist.h | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/TAO/IIOP/lib/nvlist.h b/TAO/IIOP/lib/nvlist.h deleted file mode 100644 index 55774ae8da6..00000000000 --- a/TAO/IIOP/lib/nvlist.h +++ /dev/null @@ -1,144 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -// ============================================================================ -// -// = LIBRARY -// TAO -// -// = FILENAME -// nvlist.h -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems Inc. -// -// ============================================================================ - -#if !defined (TAO_NVLIST_H) -# define TAO_NVLIST_H - -# include "ace/OS.h" - -// @@ IS it necessary to use ACE_Svc_Export on a forward decl? I -// simply did a global replace of _EXPCLASS with ACE_Svc_Export. I'm -// not familiar enough with crazy MSVC nuances to know if this is -// necessary, what it means, etc. Perhaps Brian can shed some light -// on the subject? --cjc -class ACE_Svc_Export CORBA_NamedValue; - -void CORBA_release (CORBA_NamedValue_ptr x); -CORBA_Boolean CORBA_is_nil (CORBA_NamedValue_ptr x); - -// No IID required -enum -{ - CORBA_ARG_IN = 0x01, - CORBA_ARG_OUT = 0x02, - CORBA_ARG_INOUT = 0x04, - CORBA_IN_COPY_VALUE = 0x08, - CORBA_OUT_LIST_MEMORY = 0x10 -}; - -class ACE_Svc_Export CORBA_NamedValue -// = TITLE -// NamedValue ... these occur only in "NVList" (named value list) data -// structures. The binary form of the data structure is frozen and -// visible to programs using it (e.g. from C). The C++ class supports -// some programming discipline, e.g. to avoid memory leaks. -// -// They just represent parameters to calls. The name is optional, and -// the value is packaged as an Any. The flags indicate parameter -// mode, and some ownership rules for "top level" memory. -{ -public: - const CORBA_String _FAR name (void) - { return (const CORBA_String) _name; } - - CORBA_Any_ptr _FAR value (void) { return &_any; } - CORBA_Flags flags (void) const { return _flags; } - - ~CORBA_NamedValue (void); - - // = Methods required for COM IUnknown support. - - ULONG __stdcall AddRef (void); - ULONG __stdcall Release (void); - HRESULT __stdcall QueryInterface (REFIID riid, - void **ppv); - -private: - u_int _refcount; - ACE_Thread_Mutex lock_; - - CORBA_Any _any; - CORBA_Flags _flags; - const CORBA_Char *_FAR _name; - - CORBA_NamedValue (void) : _flags (0), _name (0) { } - - friend class CORBA_NVList; - friend class CORBA_Request; -}; - -class ACE_Svc_Export CORBA_NVList; - -void CORBA_release (CORBA_NVList_ptr x); -CORBA_Boolean CORBA_is_nil (CORBA_NVList_ptr x); - -// @@ Why is this extern "C"? -// See prior comments... -extern "C" const IID IID_CORBA_NVList; - -class ACE_Svc_Export CORBA_NVList - // = TITLE - // 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. -{ -public: - CORBA_ULong count (void) const - { return _len; } - - CORBA_NamedValue_ptr add_value (const CORBA_Char *_FAR , - const CORBA_Any _FAR &, - CORBA_Flags, - CORBA_Environment _FAR &); - - CORBA_NamedValue_ptr item (CORBA_Long n) const - { return &_values [(u_int) n]; } - - ~CORBA_NVList (void); - - // = Methods required for COM IUnknown support - - ULONG __stdcall AddRef (void); - ULONG __stdcall Release (void); - HRESULT __stdcall QueryInterface (REFIID riid, - void **ppv); - -private: - // @@ Do we really need to keep these _FAR macros? - CORBA_NamedValue *_FAR _values; - u_int _max; - u_int _len; - ACE_Thread_Mutex lock_; - unsigned _refcount; - - CORBA_NVList (void) - : _values (0), - _max (0), - _len (0), - _refcount (1) - { } - - friend class CORBA_ORB; - friend class CORBA_Request; -}; - -#endif /* TAO_NVLIST_H */ |