00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TAO_DYNSTRUCT_I_H
00017 #define TAO_DYNSTRUCT_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
00025
00026 #include "tao/DynamicAny/DynCommon.h"
00027 #include "tao/LocalObject.h"
00028 #include "ace/Containers.h"
00029
00030 #if defined (_MSC_VER)
00031 # pragma warning(push)
00032 # pragma warning (disable:4250)
00033 #endif
00034
00035 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00036
00037
00038
00039
00040
00041
00042 class TAO_DynamicAny_Export TAO_DynStruct_i
00043 : public virtual DynamicAny::DynStruct,
00044 public virtual TAO_DynCommon,
00045 public virtual TAO_Local_RefCounted_Object
00046 {
00047 public:
00048
00049 TAO_DynStruct_i (void);
00050
00051
00052 ~TAO_DynStruct_i (void);
00053
00054
00055 void init (CORBA::TypeCode_ptr tc
00056 ACE_ENV_ARG_DECL);
00057
00058
00059 void init (const CORBA::Any& any
00060 ACE_ENV_ARG_DECL);
00061
00062
00063 static TAO_DynStruct_i *_narrow (
00064 CORBA::Object_ptr obj
00065 ACE_ENV_ARG_DECL_WITH_DEFAULTS);
00066
00067
00068
00069 virtual DynamicAny::FieldName current_member_name (
00070 ACE_ENV_SINGLE_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::TCKind current_member_kind (
00079 ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00080
00081 ACE_THROW_SPEC ((
00082 CORBA::SystemException,
00083 DynamicAny::DynAny::TypeMismatch,
00084 DynamicAny::DynAny::InvalidValue
00085 ));
00086
00087 virtual DynamicAny::NameValuePairSeq *get_members (
00088 ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00089
00090 ACE_THROW_SPEC ((
00091 CORBA::SystemException
00092 ));
00093
00094 virtual void set_members (
00095 const DynamicAny::NameValuePairSeq& value
00096 ACE_ENV_ARG_DECL_WITH_DEFAULTS)
00097
00098 ACE_THROW_SPEC ((
00099 CORBA::SystemException,
00100 DynamicAny::DynAny::TypeMismatch,
00101 DynamicAny::DynAny::InvalidValue
00102 ));
00103
00104 virtual DynamicAny::NameDynAnyPairSeq * get_members_as_dyn_any (
00105 ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00106
00107 ACE_THROW_SPEC ((
00108 CORBA::SystemException
00109 ));
00110
00111 virtual void set_members_as_dyn_any (
00112 const DynamicAny::NameDynAnyPairSeq & value
00113 ACE_ENV_ARG_DECL_WITH_DEFAULTS)
00114
00115 ACE_THROW_SPEC ((
00116 CORBA::SystemException,
00117 DynamicAny::DynAny::TypeMismatch,
00118 DynamicAny::DynAny::InvalidValue
00119 ));
00120
00121
00122
00123 virtual void from_any (
00124 const CORBA::Any & value
00125 ACE_ENV_ARG_DECL_WITH_DEFAULTS)
00126
00127 ACE_THROW_SPEC ((
00128 CORBA::SystemException,
00129 DynamicAny::DynAny::TypeMismatch,
00130 DynamicAny::DynAny::InvalidValue
00131 ));
00132
00133 virtual CORBA::Any * to_any (
00134 ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00135
00136 ACE_THROW_SPEC ((
00137 CORBA::SystemException
00138 ));
00139
00140 virtual CORBA::Boolean equal (
00141 DynamicAny::DynAny_ptr dyn_any
00142 ACE_ENV_ARG_DECL_WITH_DEFAULTS)
00143
00144 ACE_THROW_SPEC ((
00145 CORBA::SystemException
00146 ));
00147
00148 virtual void destroy (
00149 ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00150
00151 ACE_THROW_SPEC ((
00152 CORBA::SystemException
00153 ));
00154
00155 virtual DynamicAny::DynAny_ptr current_component (
00156 ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00157
00158 ACE_THROW_SPEC ((
00159 CORBA::SystemException,
00160 DynamicAny::DynAny::TypeMismatch
00161 ));
00162
00163 private:
00164
00165 void check_typecode (CORBA::TypeCode_ptr tc
00166 ACE_ENV_ARG_DECL);
00167
00168
00169
00170 void set_from_any (const CORBA::Any &any
00171 ACE_ENV_ARG_DECL);
00172
00173
00174 void init_common (void);
00175
00176
00177 TAO_DynStruct_i (const TAO_DynStruct_i &src);
00178 TAO_DynStruct_i &operator= (const TAO_DynStruct_i &src);
00179
00180 private:
00181
00182 ACE_Array_Base<DynamicAny::DynAny_var> da_members_;
00183 };
00184
00185 TAO_END_VERSIONED_NAMESPACE_DECL
00186
00187 #if defined(_MSC_VER)
00188 # pragma warning(pop)
00189 #endif
00190
00191 #include "ace/post.h"
00192 #endif