DynAnyFactory.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // $Id: DynAnyFactory.h 77779 2007-03-23 11:48:02Z johnnyw $
00004 
00005 //=============================================================================
00006 /**
00007  *  @file    DynAnyFactory.h
00008  *
00009  *  $Id: DynAnyFactory.h 77779 2007-03-23 11:48:02Z johnnyw $
00010  *
00011  *  @author Carlos O'Ryan <coryan@uci.edu>
00012  */
00013 //=============================================================================
00014 
00015 
00016 #ifndef TAO_DYNANYFACTORY_H
00017 #define TAO_DYNANYFACTORY_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/LocalObject.h"
00027 
00028 #if defined (_MSC_VER)
00029 # pragma warning(push)
00030 # pragma warning (disable:4250)
00031 #endif /* _MSC_VER */
00032 
00033 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00034 
00035 /**
00036  * @class TAO_DynAnyFactory
00037  *
00038  * Implements the DynamicAnyFactory interface and provides several
00039  * utility functions shared by all the Dynamic Any components.
00040  */
00041 class TAO_DynamicAny_Export TAO_DynAnyFactory
00042   : public virtual DynamicAny::DynAnyFactory,
00043     public virtual TAO_Local_RefCounted_Object
00044 {
00045 public:
00046   /// Constructor.
00047   TAO_DynAnyFactory (void);
00048 
00049   // = The DynamicAnyFactory methods.
00050   virtual DynamicAny::DynAny_ptr create_dyn_any (const CORBA::Any & value);
00051 
00052   virtual DynamicAny::DynAny_ptr create_dyn_any_from_type_code (
00053       CORBA::TypeCode_ptr type);
00054 
00055   virtual DynamicAny::DynAny_ptr create_dyn_any_without_truncation (
00056       const CORBA::Any & value);
00057 
00058   virtual DynamicAny::DynAnySeq * create_multiple_dyn_anys (
00059       const DynamicAny::AnySeq & values,
00060       ::CORBA::Boolean allow_truncate);
00061 
00062   virtual DynamicAny::AnySeq * create_multiple_anys (
00063       const DynamicAny::DynAnySeq & values);
00064 
00065   /// TAO-specific methods.
00066 
00067   /// Obtain the kind of object, after all aliasing has been removed.
00068   static CORBA::TCKind unalias (CORBA::TypeCode_ptr tc);
00069 
00070   /// Same as above, but returns type code instead of TCKind. Caller
00071   /// must release the return value.
00072   static CORBA::TypeCode_ptr strip_alias (CORBA::TypeCode_ptr tc);
00073 
00074 private:
00075   // Not allowed.
00076   TAO_DynAnyFactory (const TAO_DynAnyFactory &src);
00077   TAO_DynAnyFactory &operator= (const TAO_DynAnyFactory &src);
00078 };
00079 
00080 TAO_END_VERSIONED_NAMESPACE_DECL
00081 
00082 #if defined(_MSC_VER)
00083 # pragma warning(pop)
00084 #endif /* _MSC_VER */
00085 
00086 #include /**/ "ace/post.h"
00087 #endif /* TAO_DYNANYFACTORY_H */

Generated on Sun Jan 27 13:36:28 2008 for TAO_DynamicAny by doxygen 1.3.6