00001
00002
00003
00004
00005
00006
00007
00008
00009
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
00024
00025 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00026
00027 namespace CORBA
00028 {
00029 class Any;
00030 }
00031
00032 namespace TAO
00033 {
00034
00035
00036
00037
00038
00039
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
00082
00083 #endif
00084
00085 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
00086 #include "tao/AnyTypeCode/Any_Impl_T.cpp"
00087 #endif
00088
00089 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
00090 #pragma implementation ("Any_Impl_T.cpp")
00091 #endif
00092
00093 #include "ace/post.h"
00094
00095 #endif