Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef TAO_ANY_DUAL_IMPL_T_H
00015 #define TAO_ANY_DUAL_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
00026 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00027
00028 namespace TAO
00029 {
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 template<typename T>
00040 class Any_Dual_Impl_T : public Any_Impl
00041 {
00042 public:
00043 Any_Dual_Impl_T (_tao_destructor destructor,
00044 CORBA::TypeCode_ptr,
00045 T * const);
00046 Any_Dual_Impl_T (_tao_destructor destructor,
00047 CORBA::TypeCode_ptr,
00048 const T &);
00049 Any_Dual_Impl_T (CORBA::TypeCode_ptr);
00050 virtual ~Any_Dual_Impl_T (void);
00051
00052 static void insert (CORBA::Any &,
00053 _tao_destructor,
00054 CORBA::TypeCode_ptr,
00055 T * const);
00056 static void insert_copy (CORBA::Any &,
00057 _tao_destructor destructor,
00058 CORBA::TypeCode_ptr,
00059 const T &);
00060 static CORBA::Boolean extract (const CORBA::Any &,
00061 _tao_destructor,
00062 CORBA::TypeCode_ptr,
00063 const T *&);
00064
00065 virtual CORBA::Boolean marshal_value (TAO_OutputCDR &);
00066 CORBA::Boolean demarshal_value (TAO_InputCDR &);
00067 virtual void _tao_decode (TAO_InputCDR &);
00068
00069 virtual const void *value (void) const;
00070 virtual void free_value (void);
00071
00072 protected:
00073 void value (const T &);
00074
00075 T * value_;
00076 };
00077 }
00078
00079 TAO_END_VERSIONED_NAMESPACE_DECL
00080
00081 #if defined (__ACE_INLINE__)
00082 # include "tao/AnyTypeCode/Any_Dual_Impl_T.inl"
00083 #endif
00084
00085 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
00086 #include "tao/AnyTypeCode/Any_Dual_Impl_T.cpp"
00087 #endif
00088
00089 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
00090 #pragma implementation ("Any_Dual_Impl_T.cpp")
00091 #endif
00092
00093 #include "ace/post.h"
00094
00095 #endif
00096