2 //=============================================================================
4 * @file DynAnyFactory.h
6 * @author Carlos O'Ryan <coryan@uci.edu>
8 //=============================================================================
11 #ifndef TAO_DYNANYFACTORY_H
12 #define TAO_DYNANYFACTORY_H
13 #include /**/ "ace/pre.h"
15 #include "tao/DynamicAny/DynamicAny.h"
17 #if !defined (ACE_LACKS_PRAGMA_ONCE)
19 #endif /* ACE_LACKS_PRAGMA_ONCE */
21 #include "tao/LocalObject.h"
23 #if defined (_MSC_VER)
24 # pragma warning(push)
25 # pragma warning (disable:4250)
28 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
31 * @class TAO_DynAnyFactory
33 * Implements the DynamicAnyFactory interface and provides several
34 * utility functions shared by all the Dynamic Any components.
36 class TAO_DynamicAny_Export TAO_DynAnyFactory
37 : public virtual DynamicAny::DynAnyFactory
,
38 public virtual ::CORBA::LocalObject
44 // = The DynamicAnyFactory methods.
45 virtual DynamicAny::DynAny_ptr
create_dyn_any (const CORBA::Any
& value
);
47 virtual DynamicAny::DynAny_ptr
create_dyn_any_from_type_code (
48 CORBA::TypeCode_ptr type
);
50 virtual DynamicAny::DynAny_ptr
create_dyn_any_without_truncation (
51 const CORBA::Any
& value
);
53 virtual DynamicAny::DynAnySeq
* create_multiple_dyn_anys (
54 const DynamicAny::AnySeq
& values
,
55 ::CORBA::Boolean allow_truncate
);
57 virtual DynamicAny::AnySeq
* create_multiple_anys (
58 const DynamicAny::DynAnySeq
& values
);
60 /// TAO-specific methods.
62 /// Obtain the kind of object, after all aliasing has been removed.
63 static CORBA::TCKind
unalias (CORBA::TypeCode_ptr tc
);
65 /// Same as above, but returns type code instead of TCKind. Caller
66 /// must release the return value.
67 static CORBA::TypeCode_ptr
strip_alias (CORBA::TypeCode_ptr tc
);
70 TAO_DynAnyFactory (const TAO_DynAnyFactory
&src
) = delete;
71 TAO_DynAnyFactory
&operator= (const TAO_DynAnyFactory
&src
) = delete;
74 TAO_END_VERSIONED_NAMESPACE_DECL
80 #include /**/ "ace/post.h"
81 #endif /* TAO_DYNANYFACTORY_H */