Objref_TypeCode.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    Objref_TypeCode.h
00006  *
00007  *  $Id: Objref_TypeCode.h 76551 2007-01-24 13:42:44Z johnnyw $
00008  *
00009  *  Header file for
00010  *    @c tk_abstract_interface,
00011  *    @c tk_component,
00012  *    @c tk_home,
00013  *    @c tk_local_interface,
00014  *    @c tk_native and
00015  *    @c tk_objref
00016  *  @c CORBA::TypeCodes.
00017  *
00018  *  @author Ossama Othman <ossama@dre.vanderbilt.edu>
00019  */
00020 //=============================================================================
00021 
00022 #ifndef TAO_OBJREF_TYPECODE_H
00023 #define TAO_OBJREF_TYPECODE_H
00024 
00025 #include /**/ "ace/pre.h"
00026 
00027 #include "tao/AnyTypeCode/TypeCode.h"
00028 
00029 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00030 # pragma once
00031 #endif /* ACE_LACKS_PRAGMA_ONCE */
00032 
00033 #include "tao/AnyTypeCode/TypeCode_Base_Attributes.h"
00034 
00035 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00036 
00037 namespace TAO
00038 {
00039   namespace TypeCode
00040   {
00041     /**
00042      * @class Objref_Base
00043      *
00044      * @brief @c CORBA::TypeCode implementation for an OMG IDL
00045      *        @c object and object-like types.
00046      *
00047      * This class implements a @c CORBA::TypeCode for an OMG IDL
00048      * @c object (interface) and object-like types (abstract
00049      * interface, component, home, local interface and native).
00050      */
00051     template <typename StringType, class RefCountPolicy>
00052     class Objref
00053       : public CORBA::TypeCode,
00054         private RefCountPolicy
00055     {
00056     public:
00057 
00058       /// Constructor.
00059       Objref (CORBA::TCKind kind,
00060               char const * id,
00061               char const * name);
00062 
00063       /**
00064        * @name TAO-specific @c CORBA::TypeCode Methods
00065        *
00066        * Methods required by TAO's implementation of the
00067        * @c CORBA::TypeCode class.
00068        *
00069        * @see @c CORBA::TypeCode
00070        */
00071       //@{
00072       virtual bool tao_marshal (TAO_OutputCDR & cdr,
00073                                 CORBA::ULong offset) const;
00074       virtual void tao_duplicate (void);
00075       virtual void tao_release (void);
00076       //@}
00077 
00078     protected:
00079 
00080       /**
00081        * @name @c TAO CORBA::TypeCode Template Methods
00082        *
00083        * @c tk_abstract_interface, @c tk_component, @c
00084        * tk_local_interface, @c tk_native and @c tk_objref
00085        * @c CORBA::TypeCode -specific template methods.
00086        *
00087        * @see @c CORBA::TypeCode
00088        */
00089       //@{
00090       virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc
00091                                       ) const;
00092       virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc
00093                                            ) const;
00094       virtual CORBA::TypeCode_ptr get_compact_typecode_i (
00095         void) const;
00096       virtual char const * id_i (void) const;
00097       virtual char const * name_i (void) const;
00098 
00099     protected:
00100 
00101       /// Base attributes (@c id and @c name).
00102       Base_Attributes<StringType> attributes_;
00103 
00104     };
00105 
00106   }  // End namespace TypeCode
00107 }  // End namespace TAO
00108 
00109 TAO_END_VERSIONED_NAMESPACE_DECL
00110 
00111 #ifdef __ACE_INLINE__
00112 # include "tao/AnyTypeCode/Objref_TypeCode.inl"
00113 #endif  /* __ACE_INLINE__ */
00114 
00115 #ifdef ACE_TEMPLATES_REQUIRE_SOURCE
00116 # include "tao/AnyTypeCode/Objref_TypeCode.cpp"
00117 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
00118 
00119 #ifdef ACE_TEMPLATES_REQUIRE_PRAGMA
00120 # pragma implementation ("Objref_TypeCode.cpp")
00121 #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
00122 
00123 #include /**/ "ace/post.h"
00124 
00125 #endif /* TAO_OBJREF_TYPECODE_H */

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