summaryrefslogtreecommitdiff
path: root/TAO/tao/NVList.h
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-07-22 21:28:08 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-07-22 21:28:08 +0000
commit35fb0f1eddffad2c372cfe331d3e3a9d5fb0e8b8 (patch)
treeb0c51061cd9d398d0bd22924405656bce9c344dd /TAO/tao/NVList.h
parent44a012ded1d6b96d45d6351c254614f44ec426d6 (diff)
downloadATCD-35fb0f1eddffad2c372cfe331d3e3a9d5fb0e8b8.tar.gz
ChangeLogTag:Wed Jul 22 16:26:34 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
Diffstat (limited to 'TAO/tao/NVList.h')
-rw-r--r--TAO/tao/NVList.h156
1 files changed, 148 insertions, 8 deletions
diff --git a/TAO/tao/NVList.h b/TAO/tao/NVList.h
index d6b6073839c..cd2fab107e0 100644
--- a/TAO/tao/NVList.h
+++ b/TAO/tao/NVList.h
@@ -76,6 +76,76 @@ private:
friend class CORBA_Request;
};
+typedef CORBA_NamedValue* CORBA_NamedValue_ptr;
+
+class TAO_Export CORBA_NamedValue_var
+{
+ // = TITLE
+ // The T_var class for NamedValue
+ //
+ // = DESCRIPTION
+ // As any other pseudo object NamedValue must have a T_var class,
+ // the interface an semantics are specified in the CORBA spec.
+ //
+ // = NOTE
+ // We use CORBA_NamedValue_ptr as the _ptr type instead of
+ // CORBA::NamedValue_ptr, this is an attempt to reduced the cyclic
+ // dependencies in TAO.
+ //
+public:
+ CORBA_NamedValue_var (void); // default constructor
+ CORBA_NamedValue_var (CORBA_NamedValue_ptr);
+ CORBA_NamedValue_var (const CORBA_NamedValue_var &); // copy constructor
+ ~CORBA_NamedValue_var (void); // destructor
+
+ CORBA_NamedValue_var &operator= (CORBA_NamedValue_ptr);
+ CORBA_NamedValue_var &operator= (const CORBA_NamedValue_var &);
+ CORBA_NamedValue_ptr operator-> (void) const;
+
+ operator const CORBA_NamedValue_ptr &() const;
+ operator CORBA_NamedValue_ptr &();
+ // in, inout, out, _retn
+ CORBA_NamedValue_ptr in (void) const;
+ CORBA_NamedValue_ptr &inout (void);
+ CORBA_NamedValue_ptr &out (void);
+ CORBA_NamedValue_ptr _retn (void);
+ CORBA_NamedValue_ptr ptr (void) const;
+
+private:
+ CORBA_NamedValue_ptr ptr_;
+};
+
+class TAO_Export CORBA_NamedValue_out
+{
+ // = TITLE
+ // The T_out class for NamedValue
+ //
+ // = DESCRIPTION
+ // As any other pseudo object NamedValue must have a T_out class,
+ // the interface an semantics are specified in the CORBA spec.
+ //
+ // = NOTE
+ // We use CORBA_NamedValue_ptr as the _ptr type instead of
+ // CORBA::NamedValue_ptr, this is an attempt to reduced the cyclic
+ // dependencies in TAO.
+ //
+public:
+ CORBA_NamedValue_out (CORBA_NamedValue_ptr &);
+ CORBA_NamedValue_out (CORBA_NamedValue_var &);
+ CORBA_NamedValue_out (CORBA_NamedValue_out &);
+ CORBA_NamedValue_out &operator= (CORBA_NamedValue_out &);
+ CORBA_NamedValue_out &operator= (const CORBA_NamedValue_var &);
+ CORBA_NamedValue_out &operator= (CORBA_NamedValue_ptr);
+ operator CORBA_NamedValue_ptr &();
+ CORBA_NamedValue_ptr &ptr (void);
+ CORBA_NamedValue_ptr operator-> (void);
+
+private:
+ CORBA_NamedValue_ptr &ptr_;
+};
+
+// ****************************************************************
+
class TAO_Export CORBA_NVList
{
// = TITLE
@@ -97,35 +167,35 @@ public:
CORBA::ULong count (void) const;
// return the current number of elements in the list
- CORBA::NamedValue_ptr add (CORBA::Flags,
+ CORBA_NamedValue_ptr add (CORBA::Flags,
CORBA::Environment &);
// add an element and just initialize the flags
- CORBA::NamedValue_ptr add_item (const char *,
+ CORBA_NamedValue_ptr add_item (const char *,
CORBA::Flags,
CORBA::Environment &);
// add an element and initialize its name and flags
- CORBA::NamedValue_ptr add_value (const char *,
+ CORBA_NamedValue_ptr add_value (const char *,
const CORBA::Any &,
CORBA::Flags,
CORBA::Environment &);
// initializes a value, name, and flags
- CORBA::NamedValue_ptr add_item_consume (char *,
+ CORBA_NamedValue_ptr add_item_consume (char *,
CORBA::Flags,
CORBA::Environment &);
// just like add_item. In addition, memory management of char * name is taken
// over by the NVList
- CORBA::NamedValue_ptr add_value_consume (char *,
+ CORBA_NamedValue_ptr add_value_consume (char *,
CORBA::Any_ptr,
CORBA::Flags,
CORBA::Environment &);
// just like add_value. In addition, the NVList controls the memory
// management of the char *name and Any *value parameter
- CORBA::NamedValue_ptr item (CORBA::ULong n, CORBA::Environment &env);
+ CORBA_NamedValue_ptr item (CORBA::ULong n, CORBA::Environment &env);
// retrieve the item at the nth location. Raises Bounds
// CORBA::Status
@@ -145,11 +215,11 @@ private:
// constructor - cannot be instantiated directly other than through the
// ORB::create_list method
- CORBA::NamedValue_ptr add_element (CORBA::Flags, CORBA::Environment &);
+ CORBA_NamedValue_ptr add_element (CORBA::Flags, CORBA::Environment &);
// helper to increase the list size. This is used by all the add_ methods of
// the NVList class
- ACE_Unbounded_Queue<CORBA::NamedValue_ptr> values_;
+ ACE_Unbounded_Queue<CORBA_NamedValue_ptr> values_;
// internal list of parameters stored as NamedValues
CORBA::ULong max_;
@@ -165,6 +235,76 @@ private:
friend class CORBA_Request;
};
+typedef CORBA_NVList* CORBA_NVList_ptr;
+
+class TAO_Export CORBA_NVList_var
+{
+ // = TITLE
+ // The T_var class for NVList
+ //
+ // = DESCRIPTION
+ // As any other pseudo object NVList must have a T_var class,
+ // the interface an semantics are specified in the CORBA spec.
+ //
+ // = NOTE
+ // We use CORBA_NVList_ptr as the _ptr type instead of
+ // CORBA::NVList_ptr, this is an attempt to reduced the cyclic
+ // dependencies in TAO.
+ //
+public:
+ CORBA_NVList_var (void);
+ CORBA_NVList_var (CORBA_NVList_ptr);
+ CORBA_NVList_var (const CORBA_NVList_var &);
+ ~CORBA_NVList_var (void);
+
+ CORBA_NVList_var &operator= (CORBA_NVList_ptr);
+ CORBA_NVList_var &operator= (const CORBA_NVList_var &);
+ CORBA_NVList_ptr operator-> (void) const;
+
+ operator const CORBA_NVList_ptr &() const;
+ operator CORBA_NVList_ptr &();
+ // in, inout, out, _retn
+ CORBA_NVList_ptr in (void) const;
+ CORBA_NVList_ptr &inout (void);
+ CORBA_NVList_ptr &out (void);
+ CORBA_NVList_ptr _retn (void);
+ CORBA_NVList_ptr ptr (void) const;
+
+private:
+ CORBA_NVList_ptr ptr_;
+};
+
+class TAO_Export CORBA_NVList_out
+{
+ // = TITLE
+ // The T_out class for NVList
+ //
+ // = DESCRIPTION
+ // As any other pseudo object NVList must have a T_out class,
+ // the interface an semantics are specified in the CORBA spec.
+ //
+ // = NOTE
+ // We use CORBA_NVList_ptr as the _ptr type instead of
+ // CORBA::NVList_ptr, this is an attempt to reduced the cyclic
+ // dependencies in TAO.
+ //
+public:
+ CORBA_NVList_out (CORBA_NVList_ptr &);
+ CORBA_NVList_out (CORBA_NVList_var &);
+ CORBA_NVList_out (CORBA_NVList_out &);
+ CORBA_NVList_out &operator= (CORBA_NVList_out &);
+ CORBA_NVList_out &operator= (const CORBA_NVList_var &);
+ CORBA_NVList_out &operator= (CORBA_NVList_ptr);
+ operator CORBA_NVList_ptr &();
+ CORBA_NVList_ptr &ptr (void);
+ CORBA_NVList_ptr operator-> (void);
+
+private:
+ CORBA_NVList_ptr &ptr_;
+};
+
+// ****************************************************************
+
#if defined (__ACE_INLINE__)
# include "tao/NVList.i"
#endif /* __ACE_INLINE__ */