DynAny_i.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // DynAny_i.h,v 1.17 2006/03/10 07:19:07 jtc Exp
00004 
00005 //=============================================================================
00006 /**
00007  *  @file    DynAny_i.h
00008  *
00009  *  DynAny_i.h,v 1.17 2006/03/10 07:19:07 jtc Exp
00010  *
00011  *  @author Jeff Parsons <parsons@cs.wustl.edu>
00012  */
00013 //=============================================================================
00014 
00015 
00016 #ifndef TAO_DYNANY_I_H
00017 #define TAO_DYNANY_I_H
00018 #include /**/ "ace/pre.h"
00019 
00020 #include "tao/DynamicAny/DynamicAny.h"
00021 
00022 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00023 # pragma once
00024 #endif /* ACE_LACKS_PRAGMA_ONCE */
00025 
00026 #include "tao/DynamicAny/DynCommon.h"
00027 #include "tao/LocalObject.h"
00028 
00029 #if defined (_MSC_VER)
00030 # pragma warning(push)
00031 # pragma warning (disable:4250)
00032 #endif /* _MSC_VER */
00033 
00034 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00035 
00036 /**
00037  * @class TAO_DynAny_i
00038  *
00039  * @brief Implementation of the basic Dynamic Any datatype.
00040  */
00041 class TAO_DynamicAny_Export TAO_DynAny_i
00042   : public virtual DynamicAny::DynAny,
00043     public virtual TAO_DynCommon,
00044     public virtual TAO_Local_RefCounted_Object
00045 {
00046 public:
00047   /// Constructor.
00048   TAO_DynAny_i (void);
00049 
00050   /// Destructor.
00051   ~TAO_DynAny_i (void);
00052 
00053   /// Initialize using just a TypeCode
00054   void init (CORBA::TypeCode_ptr tc
00055              ACE_ENV_ARG_DECL);
00056 
00057   /// Initialize using an Any.
00058   void init (const CORBA::Any& any
00059              ACE_ENV_ARG_DECL);
00060 
00061   // = LocalObject methods.
00062   static TAO_DynAny_i *_narrow (
00063       CORBA::Object_ptr obj
00064       ACE_ENV_ARG_DECL_WITH_DEFAULTS);
00065 
00066   // = DynAny common functions not implemented in class TAO_DynCommon.
00067 
00068   virtual void from_any (
00069       const CORBA::Any & value
00070       ACE_ENV_ARG_DECL_WITH_DEFAULTS)
00071 
00072     ACE_THROW_SPEC ((
00073         CORBA::SystemException,
00074         DynamicAny::DynAny::TypeMismatch,
00075         DynamicAny::DynAny::InvalidValue
00076       ));
00077 
00078   virtual CORBA::Any * to_any (
00079       ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00080 
00081     ACE_THROW_SPEC ((
00082         CORBA::SystemException
00083       ));
00084 
00085   virtual CORBA::Boolean equal (
00086       DynamicAny::DynAny_ptr dyn_any
00087       ACE_ENV_ARG_DECL_WITH_DEFAULTS)
00088 
00089     ACE_THROW_SPEC ((
00090         CORBA::SystemException
00091       ));
00092 
00093   virtual void destroy (
00094       ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00095 
00096     ACE_THROW_SPEC ((
00097         CORBA::SystemException
00098       ));
00099 
00100   virtual DynamicAny::DynAny_ptr current_component (
00101       ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00102 
00103     ACE_THROW_SPEC ((
00104         CORBA::SystemException,
00105         DynamicAny::DynAny::TypeMismatch
00106       ));
00107 
00108 private:
00109   /// Check if the typecode is acceptable.
00110   void check_typecode (CORBA::TypeCode_ptr tc
00111                        ACE_ENV_ARG_DECL);
00112 
00113   /// Used when we are created from a typecode.
00114   void set_to_default_value (CORBA::TypeCode_ptr tc
00115                              ACE_ENV_ARG_DECL);
00116 
00117   /// Called by both versions of init().
00118   void init_common (void);
00119 
00120   // Use copy() or assign() instead of these.
00121   TAO_DynAny_i (const TAO_DynAny_i &src);
00122   TAO_DynAny_i &operator= (const TAO_DynAny_i &src);
00123 };
00124 
00125 TAO_END_VERSIONED_NAMESPACE_DECL
00126 
00127 #if defined(_MSC_VER)
00128 # pragma warning(pop)
00129 #endif /* _MSC_VER */
00130 
00131 #include /**/ "ace/post.h"
00132 #endif /* TAO_DYNANY_I_H */

Generated on Thu Nov 9 13:02:08 2006 for TAO_DynamicAny by doxygen 1.3.6