Any_Basic_Impl_T.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    Any_Basic_Impl_T.h
00006  *
00007  *  $Id: Any_Basic_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_BASIC_IMPL_T_H
00015 #define TAO_ANY_BASIC_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_Basic_Impl_T
00031    *
00032    * @brief Template Any class for basic types.
00033    *
00034    * Used for all basic IDL types except bounded (w)strings.
00035    */
00036   template<typename T>
00037   class Any_Basic_Impl_T : public Any_Impl
00038   {
00039   public:
00040     Any_Basic_Impl_T (CORBA::TypeCode_ptr,
00041                       const T & val);
00042     virtual ~Any_Basic_Impl_T (void);
00043 
00044     static void insert (CORBA::Any &,
00045                         CORBA::TypeCode_ptr,
00046                         const T &);
00047     static CORBA::Boolean extract (const CORBA::Any &,
00048                                    CORBA::TypeCode_ptr,
00049                                    T &);
00050 
00051     virtual CORBA::Boolean marshal_value (TAO_OutputCDR &);
00052     CORBA::Boolean demarshal_value (TAO_InputCDR &);
00053     virtual void _tao_decode (TAO_InputCDR &);
00054 
00055     virtual const void *value (void) const;
00056     static Any_Basic_Impl_T<T> *create_empty (CORBA::TypeCode_ptr);
00057 
00058   private:
00059     T value_;
00060   };
00061 }
00062 
00063 TAO_END_VERSIONED_NAMESPACE_DECL
00064 
00065 #if defined (__ACE_INLINE__)
00066 # include "tao/AnyTypeCode/Any_Basic_Impl_T.inl"
00067 #endif /* __ACE_INLINE__ */
00068 
00069 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
00070 #include "tao/AnyTypeCode/Any_Basic_Impl_T.cpp"
00071 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
00072 
00073 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
00074 #pragma implementation ("Any_Basic_Impl_T.cpp")
00075 #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
00076 
00077 #include /**/ "ace/post.h"
00078 
00079 #endif /* TAO_ANY_BASIC_IMPL_T_H */
00080 

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