Any_Impl_T.h

Go to the documentation of this file.
00001 // This may look like C, but it's really -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    Any_Impl_T.h
00006  *
00007  *  $Id: Any_Impl_T.h 76551 2007-01-24 13:42:44Z johnnyw $
00008  *
00009  *  @authors  Carlos O'Ryan and Jeff Parsons
00010  */
00011 //=============================================================================
00012 
00013 
00014 #ifndef TAO_ANY_IMPL_T_H
00015 #define TAO_ANY_IMPL_T_H
00016 
00017 #include /**/ "ace/pre.h"
00018 
00019 #include "tao/AnyTypeCode/Any_Impl.h"
00020 
00021 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00022 # pragma once
00023 #endif /* ACE_LACKS_PRAGMA_ONCE */
00024 
00025 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00026 
00027 namespace CORBA
00028 {
00029   class Any;
00030 }
00031 
00032 namespace TAO
00033 {
00034   /**
00035    * @class Any_Impl_T
00036    *
00037    * @brief Template Any class for pointer types.
00038    *
00039    * Used for interfaces and typecodes
00040    */
00041   template<typename T>
00042   class Any_Impl_T : public Any_Impl
00043   {
00044   public:
00045     Any_Impl_T (_tao_destructor destructor,
00046                 CORBA::TypeCode_ptr,
00047                 T * const);
00048     virtual ~Any_Impl_T (void);
00049 
00050     static void insert (CORBA::Any &,
00051                         _tao_destructor destructor,
00052                         CORBA::TypeCode_ptr,
00053                         T * const);
00054     static CORBA::Boolean extract (const CORBA::Any &,
00055                                    _tao_destructor,
00056                                    CORBA::TypeCode_ptr,
00057                                    T *&);
00058 
00059     virtual CORBA::Boolean to_object (CORBA::Object_ptr &) const;
00060     virtual CORBA::Boolean to_value (CORBA::ValueBase *&) const;
00061     virtual CORBA::Boolean to_abstract_base (CORBA::AbstractBase_ptr &) const;
00062 
00063     virtual CORBA::Boolean marshal_value (TAO_OutputCDR &);
00064     CORBA::Boolean demarshal_value (TAO_InputCDR &);
00065     virtual void _tao_decode (TAO_InputCDR & );
00066     virtual const void *value (void) const;
00067     virtual void free_value (void);
00068 
00069   private:
00070     T * value_;
00071   };
00072 }
00073 
00074 TAO_END_VERSIONED_NAMESPACE_DECL
00075 
00076 #if defined (__ACE_INLINE__)
00077 # include "tao/AnyTypeCode/Any_Impl_T.inl"
00078 
00079 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00080 # pragma once
00081 #endif /* ACE_LACKS_PRAGMA_ONCE */
00082 
00083 #endif /* __ACE_INLINE__ */
00084 
00085 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
00086 #include "tao/AnyTypeCode/Any_Impl_T.cpp"
00087 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
00088 
00089 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
00090 #pragma implementation ("Any_Impl_T.cpp")
00091 #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
00092 
00093 #include /**/ "ace/post.h"
00094 
00095 #endif /* TAO_ANY_IMPL_T_H */

Generated on Sun Jan 27 13:21:06 2008 for TAO_AnyTypeCode by doxygen 1.3.6