00001 // -*- C++ -*- 00002 // 00003 // $Id: DynAny_i.h 81429 2008-04-24 18:49:54Z johnnyw $ 00004 00005 //============================================================================= 00006 /** 00007 * @file DynAny_i.h 00008 * 00009 * $Id: DynAny_i.h 81429 2008-04-24 18:49:54Z johnnyw $ 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 ::CORBA::LocalObject 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 ); 00056 00057 /// Initialize using an Any. 00058 void init (const CORBA::Any& any 00059 ); 00060 00061 // = LocalObject methods. 00062 static TAO_DynAny_i *_narrow ( 00063 CORBA::Object_ptr obj 00064 ); 00065 00066 // = DynAny common functions not implemented in class TAO_DynCommon. 00067 00068 virtual void from_any ( 00069 const CORBA::Any & value 00070 ) 00071 ; 00072 00073 virtual CORBA::Any * to_any ( 00074 void) 00075 ; 00076 00077 virtual CORBA::Boolean equal ( 00078 DynamicAny::DynAny_ptr dyn_any 00079 ) 00080 ; 00081 00082 virtual void destroy ( 00083 void) 00084 ; 00085 00086 virtual DynamicAny::DynAny_ptr current_component ( 00087 void) 00088 ; 00089 00090 private: 00091 /// Check if the typecode is acceptable. 00092 void check_typecode (CORBA::TypeCode_ptr tc 00093 ); 00094 00095 /// Used when we are created from a typecode. 00096 void set_to_default_value (CORBA::TypeCode_ptr tc 00097 ); 00098 00099 /// Called by both versions of init(). 00100 void init_common (void); 00101 00102 // Use copy() or assign() instead of these. 00103 TAO_DynAny_i (const TAO_DynAny_i &src); 00104 TAO_DynAny_i &operator= (const TAO_DynAny_i &src); 00105 }; 00106 00107 TAO_END_VERSIONED_NAMESPACE_DECL 00108 00109 #if defined(_MSC_VER) 00110 # pragma warning(pop) 00111 #endif /* _MSC_VER */ 00112 00113 #include /**/ "ace/post.h" 00114 #endif /* TAO_DYNANY_I_H */