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