00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file Empty_Param_TypeCode.h 00006 * 00007 * $Id: Empty_Param_TypeCode.h 76551 2007-01-24 13:42:44Z johnnyw $ 00008 * 00009 * Header file for @c CORBA::TypeCodes with empty parameter lists. 00010 * 00011 * @author Ossama Othman <ossama@dre.vanderbilt.edu> 00012 */ 00013 //============================================================================= 00014 00015 #ifndef TAO_EMPTY_PARAM_TYPECODE_H 00016 #define TAO_EMPTY_PARAM_TYPECODE_H 00017 00018 #include /**/ "ace/pre.h" 00019 00020 #include "tao/AnyTypeCode/TypeCode.h" 00021 00022 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00023 # pragma once 00024 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00025 00026 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00027 00028 namespace TAO 00029 { 00030 namespace TypeCode 00031 { 00032 00033 /** 00034 * @class Empty_Param 00035 * 00036 * @brief @c CORBA::TypeCode implementation for OMG IDL types with 00037 * empty parameter lists. 00038 * 00039 * This class implements a @c CORBA::TypeCode for OMG IDL types 00040 * with empty parameter lists. 00041 * 00042 * @note @c Empty_Param @c TypeCodes are not reference counted in 00043 * TAO since they are static, exist as constants for the 00044 * length of a given OS process, and cannot be created 00045 * through the @c CORBA::ORB or @c CORBA::TypeCodeFactory 00046 * interfaces. 00047 */ 00048 class Empty_Param : public CORBA::TypeCode 00049 { 00050 public: 00051 00052 /// Constructor. 00053 Empty_Param (CORBA::TCKind k); 00054 00055 /** 00056 * @name TAO-specific @c CORBA::TypeCode Methods 00057 * 00058 * Methods required by TAO's implementation of the 00059 * @c CORBA::TypeCode class. 00060 * 00061 * @see @c CORBA::TypeCode 00062 */ 00063 //@{ 00064 virtual bool tao_marshal (TAO_OutputCDR & cdr, 00065 CORBA::ULong offset) const; 00066 virtual void tao_duplicate (void); 00067 virtual void tao_release (void); 00068 //@} 00069 00070 protected: 00071 00072 /** 00073 * @name @c TAO CORBA::TypeCode Template Methods 00074 * 00075 * @c CORBA::TypeCode template methods specific to @c TypeCodes 00076 * with empty parameter lists. 00077 * 00078 * @see @c CORBA::TypeCode 00079 */ 00080 //@{ 00081 virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc) const; 00082 virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc) const; 00083 virtual CORBA::TypeCode_ptr get_compact_typecode_i (void) const; 00084 00085 }; 00086 00087 } // End namespace TypeCode 00088 } // End namespace TAO 00089 00090 TAO_END_VERSIONED_NAMESPACE_DECL 00091 00092 00093 #ifdef __ACE_INLINE__ 00094 # include "tao/AnyTypeCode/Empty_Param_TypeCode.inl" 00095 #endif /* __ACE_INLINE__ */ 00096 00097 #include /**/ "ace/post.h" 00098 00099 #endif /* TAO_EMPTY_PARAM_TYPECODE_H */