summaryrefslogtreecommitdiff
path: root/TAO/tao/any.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/any.h')
-rw-r--r--TAO/tao/any.h341
1 files changed, 0 insertions, 341 deletions
diff --git a/TAO/tao/any.h b/TAO/tao/any.h
deleted file mode 100644
index eb253c1084b..00000000000
--- a/TAO/tao/any.h
+++ /dev/null
@@ -1,341 +0,0 @@
-// This may look like C, but it's really -*- C++ -*-
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO
-//
-// = FILENAME
-// any.h
-//
-// = DESCRIPTION
-// Header file for Win32 C/C++/COM interface to CORBA's "Any" type.
-//
-// = AUTHOR
-// Copyright 1994-1995 by Sun Microsystems, Inc.
-//
-// Remaining CORBA compliant functions added by Aniruddha Gokhale
-//
-// ============================================================================
-
-#if !defined (TAO_ANY_H)
-#define TAO_ANY_H
-
-class TAO_Export CORBA_Any : public TAO_IUnknown
- // = TITLE
- // Class "Any" can wrap values of any type, with the assistance
- // of a TypeCode to describe that type.
- //
- // = DESCRIPTION
- // XXX should find a way to make its memory allocation always go
- // within the appropriate OLE heap...
-{
-public:
- // = Minor codes for exceptional returns
- enum
- {
- UNINITIALIZED_type = 0xf000,
- VALUE_WITHOUT_TYPE,
- UNSUPPORTED_OPERATION
- };
-
- // = Initialization and termination operations.
- CORBA_Any (void);
- // Default constructor.
-
- CORBA_Any (CORBA::TypeCode_ptr type,
- void *value = 0,
- CORBA::Boolean orb_owns_data = CORBA::B_FALSE);
- // Constructor.
-
- CORBA_Any (const CORBA_Any &a);
- // Copy constructor.
-
- virtual ~CORBA_Any (void);
- // Destructor.
-
- CORBA_Any &operator= (const CORBA_Any &);
- // assignment operator
-
- // = NOTE: 94-9-14 has assignment operator plus many insertion, as specified
- // below
-
- // =type safe insertion
-
- void operator<<= (CORBA::Short);
- // insert a short
-
- void operator<<= (CORBA::UShort);
- // insert an unsigned short
-
- void operator<<= (CORBA::Long);
- // insert a long
-
- void operator<<= (CORBA::ULong);
- // insert an unsigned long
-
- void operator<<= (CORBA::Float);
- // insert a float
-
- void operator<<= (CORBA::Double);
- // insert a double
-
- void operator<<= (const CORBA_Any&);
- // insert an Any
-
- void operator<<= (const char*);
- // insert unbounded strings
-
- // =type safe extraction
-
- CORBA::Boolean operator>>= (CORBA::Short&) const;
- // extract a short
-
- CORBA::Boolean operator>>= (CORBA::UShort&) const;
- // extract an unsigned short
-
- CORBA::Boolean operator>>= (CORBA::Long&) const;
- // extract a long
-
- CORBA::Boolean operator>>= (CORBA::ULong&) const;
- // extract an unsigned long
-
- CORBA::Boolean operator>>= (CORBA::Float&) const;
- // extract a float
-
- CORBA::Boolean operator>>= (CORBA::Double&) const;
- // extract a double
-
- CORBA::Boolean operator>>= (CORBA_Any&) const;
- // extract an Any
-
- CORBA::Boolean operator>>= (char*&) const;
- // extract an unbounded string
-
- // special types needed for insertion and extraction of booleans, octets,
- // chars, and bounded strings
-
- struct from_boolean
- {
- from_boolean (CORBA::Boolean b);
- CORBA::Boolean val_;
- };
-
- struct from_octet
- {
- from_octet (CORBA::Octet o);
- CORBA::Octet val_;
- };
-
- struct from_char
- {
- from_char (CORBA::Char c);
- CORBA::Char val_;
- };
-
- struct from_string
- {
- from_string (char* s, CORBA::ULong b, CORBA::Boolean nocopy = CORBA::B_FALSE);
- char *val_;
- CORBA::ULong bound_;
- CORBA::Boolean nocopy_;
- };
-
- void operator<<= (from_boolean);
- // insert a boolean
-
- void operator<<= (from_char);
- // insert a char
-
- void operator<<= (from_octet);
- // insert an octet
-
- void operator<<= (from_string);
- // insert a bounded string
-
- // special types for extracting octets, chars, booleans, and bounded strings
-
- struct to_boolean
- {
- to_boolean (CORBA::Boolean &b);
- CORBA::Boolean &ref_;
- };
-
- struct to_char
- {
- to_char (CORBA::Char &c);
- CORBA::Char &ref_;
- };
-
- struct to_octet
- {
- to_octet (CORBA::Octet &o);
- CORBA::Octet &ref_;
- };
-
- struct to_string
- {
- to_string (char *&s, CORBA::ULong b);
- char *&ref_;
- CORBA::ULong bound_;
- };
-
- // extraction of the special types
- CORBA::Boolean operator>>= (to_boolean) const;
- CORBA::Boolean operator>>= (to_octet) const;
- CORBA::Boolean operator>>= (to_char) const;
- CORBA::Boolean operator>>= (to_string) const;
-
- // = ALLOCATION
- void *operator new (size_t, const void *p);
- // Placement new.
- void *operator new (size_t s);
- // Default new.
- void operator delete (void *p);
- // Default delete
-
- void replace (CORBA::TypeCode_ptr type,
- const void *value,
- CORBA::Boolean orb_owns_data,
- CORBA::Environment &env);
- // replace the current typecode and data with the specified one - unsafe
-
- CORBA::TypeCode_ptr type (void) const;
- // Return <type> of <Any>.
-
- const void *value (void) const;
- // Return <value> of <Any>.
-
- // = Methods required for COM <IUnknown> support.
-
- ULONG AddRef (void);
- ULONG Release (void);
- TAO_HRESULT QueryInterface (REFIID riid,
- void **ppv);
-
- // = Conversion to/from COM Variant types:
-
- CORBA_Any (const TAO_VARIANT &src);
- // copy constructor,
-
- CORBA_Any &operator = (const TAO_VARIANT &src);
- // assignment operator
-
- operator TAO_VARIANT (void);
- // cast operator.
-
-private:
- CORBA::TypeCode_ptr type_;
- // Typecode for the <Any>.
-
- void *value_;
- // Value for the <Any>.
-
- CORBA::Boolean orb_owns_data_;
- // Flag that indicates the ORB is responsible for deleting the data.
-
- u_int refcount_;
- // Reference count the <Any> to reduce copying costs.
-
- ACE_SYNCH_MUTEX lock_;
- // Serialize access to the reference count.
-
- void replace (CORBA::TypeCode_ptr type,
- const void *value,
- CORBA::Boolean orb_owns_data);
- // Helper for extraction operators that don't pass an environment
- // parameter. 94-9-14 hides unsigned char insert/extract
- void operator<<= (unsigned char);
- CORBA::Boolean operator>>= (unsigned char&) const;
-};
-
-class TAO_Export CORBA_Any_var
- // = TITLE
- // Provide for automatic storage deallocation on going out of scope.
-{
-public:
- CORBA_Any_var (void);
- // default constructor
-
- CORBA_Any_var (CORBA_Any *a);
- // construct from an Any pointer
-
- CORBA_Any_var (const CORBA_Any_var &a);
- // copy constructor
-
- ~CORBA_Any_var (void);
- // destructor
-
- CORBA_Any_var &operator= (CORBA_Any *a);
- // assignment from a pointer to Any
-
- CORBA_Any_var &operator= (const CORBA_Any_var &a);
- // assignment from an Any_var
-
- CORBA_Any *operator-> (void);
- // arrow operator (smart pointer)
-
- operator const CORBA_Any *() const;
- // cast
-
- operator CORBA_Any *&();
- // cast
-
- const CORBA_Any &in (void) const;
- // for in Any parameter
-
- CORBA_Any &inout (void);
- // for inout Any parameter
-
- CORBA_Any *&out (void);
- // for out Any parameter
-
- CORBA_Any *_retn (void);
- // for Any return types
-
-private:
- CORBA_Any *ptr_;
-};
-
-class TAO_Export CORBA_Any_out
- // = TITLE
- // @@ (ANDY) Please document me.
-{
-public:
- // = operations.
-
- CORBA_Any_out (CORBA_Any *&p);
- // construction from a reference to a CORBA_Any
-
- CORBA_Any_out (CORBA_Any_var &p);
- // construction from a var
-
- CORBA_Any_out (CORBA_Any_out &s);
- // copy constructor
-
- CORBA_Any_out &operator= (CORBA_Any_out &s);
- // assignment from a CORBA_Any_out
-
- CORBA_Any_out &operator= (CORBA_Any *p);
- // assignment from a CORBA_Any
-
- CORBA_Any_out &operator= (const CORBA_Any *p);
- // assignment from a const CORBA_Any
-
- operator CORBA_Any *&();
- // cast
-
- CORBA_Any *& ptr (void);
- // return underlying instance
-
-private:
- CORBA_Any *&ptr_;
- // instance
-
- void operator= (const CORBA_Any_var &);
- // assignment from _var disallowed
-};
-
-#endif /* TAO_ANY_H */
-
-