Objref_TypeCode_Static.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    Objref_TypeCode_Static.h
00006  *
00007  *  $Id: Objref_TypeCode_Static.h 76551 2007-01-24 13:42:44Z johnnyw $
00008  *
00009  *  Header file for static
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_STATIC_H
00023 #define TAO_OBJREF_TYPECODE_STATIC_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 #include "tao/AnyTypeCode/Null_RefCount_Policy.h"
00035 
00036 
00037 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00038 
00039 namespace TAO
00040 {
00041   namespace TypeCode
00042   {
00043     template <typename StringType, class RefCountPolicy> class Objref;
00044 
00045     /**
00046      * @class Objref
00047      *
00048      * @brief @c CORBA::TypeCode implementation for an OMG IDL
00049      *        @c object and object-like types.
00050      *
00051      * This class implements a @c CORBA::TypeCode for an OMG IDL
00052      * @c object (interface) and object-like types (abstract
00053      * interface, component, home, local interface and native).
00054      */
00055     template<>
00056     class TAO_AnyTypeCode_Export Objref<char const *, TAO::Null_RefCount_Policy>
00057       : public CORBA::TypeCode,
00058         private TAO::Null_RefCount_Policy
00059     {
00060     public:
00061 
00062       /// Constructor.
00063       Objref (CORBA::TCKind kind,
00064               char const * id,
00065               char const * name);
00066 
00067       /**
00068        * @name TAO-specific @c CORBA::TypeCode Methods
00069        *
00070        * Methods required by TAO's implementation of the
00071        * @c CORBA::TypeCode class.
00072        *
00073        * @see @c CORBA::TypeCode
00074        */
00075       //@{
00076       virtual bool tao_marshal (TAO_OutputCDR & cdr,
00077                                 CORBA::ULong offset) const;
00078       virtual void tao_duplicate (void);
00079       virtual void tao_release (void);
00080       //@}
00081 
00082     protected:
00083 
00084       /**
00085        * @name @c TAO CORBA::TypeCode Template Methods
00086        *
00087        * @c tk_abstract_interface, @c tk_component, @c
00088        * tk_local_interface, @c tk_native and @c tk_objref
00089        * @c CORBA::TypeCode -specific template methods.
00090        *
00091        * @see @c CORBA::TypeCode
00092        */
00093       //@{
00094       virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc) const;
00095       virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc) const;
00096       virtual CORBA::TypeCode_ptr get_compact_typecode_i (void) const;
00097       virtual char const * id_i (void) const;
00098       virtual char const * name_i (void) const;
00099 
00100     protected:
00101 
00102       /// Base attributes (@c id and @c name).
00103       Base_Attributes<char const *> attributes_;
00104 
00105     };
00106 
00107   }  // End namespace TypeCode
00108 }  // End namespace TAO
00109 
00110 TAO_END_VERSIONED_NAMESPACE_DECL
00111 
00112 #ifdef __ACE_INLINE__
00113 # include "tao/AnyTypeCode/Objref_TypeCode_Static.inl"
00114 #endif  /* __ACE_INLINE__ */
00115 
00116 #include /**/ "ace/post.h"
00117 
00118 #endif /* TAO_OBJREF_TYPECODE_STATIC_H */

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