Any_Special_Impl_T.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    Any_Special_Impl_T.h
00006  *
00007  *  $Id: Any_Special_Impl_T.h 76551 2007-01-24 13:42:44Z johnnyw $
00008  *
00009  *  @author  Carlos O'Ryan and Jeff Parsons
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 /* ACE_LACKS_PRAGMA_ONCE */
00024 
00025 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00026 
00027 namespace TAO
00028 {
00029   /**
00030    * @class Any_Special_Impl_T
00031    *
00032    * @brief Template Any class for bounded IDL (w)strings.
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 /* __ACE_INLINE__ */
00074 
00075 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
00076 #include "tao/AnyTypeCode/Any_Special_Impl_T.cpp"
00077 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
00078 
00079 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
00080 #pragma implementation ("Any_Special_Impl_T.cpp")
00081 #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
00082 
00083 #include /**/ "ace/post.h"
00084 
00085 #endif /* TAO_ANY_SPECIAL_IMPL_T_H */
00086 

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