2 //=============================================================================
4 * @file DynValueBox_i.h
6 * @author simon dot massey at prismtech dot com
8 //=============================================================================
11 #ifndef TAO_DYNVALUEBOX_I_H
12 #define TAO_DYNVALUEBOX_I_H
13 #include /**/ "ace/pre.h"
15 #include "tao/DynamicAny/DynValueCommon_i.h"
17 #if !defined (ACE_LACKS_PRAGMA_ONCE)
19 #endif /* ACE_LACKS_PRAGMA_ONCE */
21 #if defined (_MSC_VER)
22 # pragma warning(push)
23 # pragma warning (disable:4250)
26 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
29 * @class TAO_DynValueBox_i
31 * @brief Implementation of the DynValueBox class.
33 class TAO_DynamicAny_Export TAO_DynValueBox_i
34 : public virtual DynamicAny::DynValueBox
,
35 public virtual TAO_DynValueCommon_i
39 TAO_DynValueBox_i (CORBA::Boolean allow_truncation
=true);
42 ~TAO_DynValueBox_i ();
44 /// Initialize using just a TypeCode.
45 void init (CORBA::TypeCode_ptr tc
);
47 /// Initialize using an Any.
48 void init (const CORBA::Any
& any
);
50 // = LocalObject methods.
51 static TAO_DynValueBox_i
*_narrow (CORBA::Object_ptr obj
);
53 // = Functions specific to DynValueBox.
54 virtual CORBA::Any
* get_boxed_value ();
56 virtual void set_boxed_value (const CORBA::Any
& boxed
);
58 virtual DynamicAny::DynAny_ptr
get_boxed_value_as_dyn_any ();
60 virtual void set_boxed_value_as_dyn_any (DynamicAny::DynAny_ptr boxed
);
62 // = DynAny common functions not implemented in class TAO_DynCommon.
63 virtual void from_any (const CORBA::Any
& value
);
65 virtual CORBA::Any
* to_any ();
67 virtual CORBA::Boolean
equal (DynamicAny::DynAny_ptr dyn_any
);
69 virtual void destroy ();
71 virtual DynamicAny::DynAny_ptr
current_component ();
73 // = DynValueCommon needed to be provided here
74 virtual void set_to_value ();
77 /// Check if the typecode is acceptable.
78 void check_typecode (CORBA::TypeCode_ptr tc
);
80 /// Code common to the constructor from an Any arg and the member
81 /// function from_any().
82 void set_from_any (const CORBA::Any
&any
);
84 // = Use copy() or assign() instead of these.
85 TAO_DynValueBox_i (const TAO_DynValueBox_i
&src
);
86 TAO_DynValueBox_i
&operator= (const TAO_DynValueBox_i
&src
);
88 /// The boxed component of DynValueBox is another DynAny.
89 DynamicAny::DynAny_var boxed_
;
92 TAO_END_VERSIONED_NAMESPACE_DECL
98 #include /**/ "ace/post.h"
99 #endif /* TAO_DYNVALUEBOX_I_H */