diff options
author | Ossama Othman <ossama-othman@users.noreply.github.com> | 2005-03-11 06:00:49 +0000 |
---|---|---|
committer | Ossama Othman <ossama-othman@users.noreply.github.com> | 2005-03-11 06:00:49 +0000 |
commit | accde0b7fd4c99785d1495573446f72234818aa9 (patch) | |
tree | 110ad3765da9696a5b18635980eda48238c384d6 | |
parent | 846211c33d2c82df4483d16b2e9c47053dce02c2 (diff) | |
download | ATCD-accde0b7fd4c99785d1495573446f72234818aa9.tar.gz |
*** empty log message ***
-rw-r--r-- | TAO/tao/TypeCode/Struct_TypeCode.inl | 22 | ||||
-rw-r--r-- | TAO/tao/TypeCode/TypeCode.inl | 2 | ||||
-rw-r--r-- | TAO/tao/TypeCode/TypeCode_Constants.cpp | 63 | ||||
-rw-r--r-- | TAO/tao/TypeCode/Value_TypeCode.cpp | 5 | ||||
-rw-r--r-- | TAO/tao/TypeCode/Value_TypeCode.h | 7 | ||||
-rw-r--r-- | TAO/tao/TypeCode/Value_TypeCode.inl | 27 |
6 files changed, 111 insertions, 15 deletions
diff --git a/TAO/tao/TypeCode/Struct_TypeCode.inl b/TAO/tao/TypeCode/Struct_TypeCode.inl index 9f9135325f6..2d060b23260 100644 --- a/TAO/tao/TypeCode/Struct_TypeCode.inl +++ b/TAO/tao/TypeCode/Struct_TypeCode.inl @@ -7,7 +7,10 @@ template <typename StringType, CORBA::TCKind Kind, class RefCountPolicy> ACE_INLINE -TAO::TypeCode::Struct<StringType, FieldArrayType, RefCountPolicy>::Struct ( +TAO::TypeCode::Struct<StringType, + FieldArrayType, + Kind, + RefCountPolicy>::Struct ( char const * id, char const * name, Field<StringType> const * fields, @@ -24,7 +27,9 @@ template <typename StringType, class RefCountPolicy> ACE_INLINE TAO::TypeCode::Field<StringType> const * TAO::TypeCode::Struct<StringType, - FieldArrayType>::fields (void) const + FieldArrayType, + Kind, + RefCountPolicy>::fields (void) const { return this->fields_; } @@ -35,7 +40,18 @@ TAO::TypeCode::Struct<StringType, ACE_INLINE TAO::TypeCode::Field<CORBA::String_var> const * TAO::TypeCode::Struct<CORBA::String_var, - ACE_Auto_Ptr_Array<Field<CORBA::String_var> const> >::fields (void) const + ACE_Auto_Ptr_Array<Field<CORBA::String_var> const>, + CORBA::tk_struct, + TAO::True_RefCount_Policy>::fields (void) const +{ + return this->fields_.get (); +} + +ACE_INLINE TAO::TypeCode::Field<CORBA::String_var> const * +TAO::TypeCode::Struct<CORBA::String_var, + ACE_Auto_Ptr_Array<Field<CORBA::String_var> const>, + CORBA::tk_except, + TAO::True_RefCount_Policy>::fields (void) const { return this->fields_.get (); } diff --git a/TAO/tao/TypeCode/TypeCode.inl b/TAO/tao/TypeCode/TypeCode.inl index 68272a07fac..47c3b9eff41 100644 --- a/TAO/tao/TypeCode/TypeCode.inl +++ b/TAO/tao/TypeCode/TypeCode.inl @@ -38,7 +38,7 @@ CORBA::TypeCode::_duplicate (CORBA::TypeCode_ptr tc) ACE_INLINE CORBA::TypeCode_ptr CORBA::TypeCode::_nil (void) { - return (CORBA::TypeCode_ptr) 0; + return static_cast<CORBA::TypeCode_ptr> (0); } ACE_INLINE CORBA::Boolean diff --git a/TAO/tao/TypeCode/TypeCode_Constants.cpp b/TAO/tao/TypeCode/TypeCode_Constants.cpp index 14f7ac5a740..4a24314ebb3 100644 --- a/TAO/tao/TypeCode/TypeCode_Constants.cpp +++ b/TAO/tao/TypeCode/TypeCode_Constants.cpp @@ -12,6 +12,9 @@ ACE_RCSID (tao, #include "Empty_Param_TypeCode.h" #include "Objref_TypeCode.h" +#include "String_TypeCode.h" +#include "Value_TypeCode.h" + #include "tao/TC_Constants_Forward.h" namespace TAO @@ -19,6 +22,7 @@ namespace TAO namespace TypeCode { // Notice that these are all statically instantiated and not + // exported. There CORBA::TypeCode_ptr counterparts are, however, // exported. Empty_Param tc_null (CORBA::tk_null); @@ -40,11 +44,57 @@ namespace TAO Empty_Param tc_TypeCode (CORBA::tk_TypeCode); Empty_Param tc_Principal (CORBA::tk_Principal); + // -------------- + + String<TAO::Null_RefCount_Policy> tc_string (CORBA::tk_string, 0); + String<TAO::Null_RefCount_Policy> tc_wstring (CORBA::tk_wstring, 0); + + // -------------- + char const tc_object_id[] = "IDL:omg.org/CORBA/Object:1.0"; char const tc_object_name[] = "Object"; Objref<char const *, CORBA::tk_objref, - TAO::Null_RefCount_Policy> tc_object (tc_object_id, tc_object_name); + TAO::Null_RefCount_Policy> tc_Object (tc_object_id, tc_object_name); + + char const tc_component_id[] = "IDL:omg.org/CORBA/CCMObject:1.0"; + char const tc_component_name[] = "CCMObject"; + Objref<char const *, + CORBA::tk_component, + TAO::Null_RefCount_Policy> tc_Component (tc_component_id, + tc_component_name); + + char const tc_home_id[] = "IDL:omg.org/CORBA/CCMHome:1.0"; + char const tc_home_name[] = "CCMHome"; + Objref<char const *, + CORBA::tk_home, + TAO::Null_RefCount_Policy> tc_Home (tc_home_id, tc_home_name); + + // -------------- + + char const tc_value_base_id[] = "IDL:omg.org/CORBA/ValueBase:1.0"; + char const tc_value_base_name[] = "ValueBase"; + Value<char const *, + Field<char const *> *, + CORBA::tk_value, + TAO::Null_RefCount_policy> tc_ValueBase (tc_value_base_id, + tc_value_base_name, + CORBA::VM_NONE, + 0, // Nil TypeCode + 0, // Field array + 0); // Field count + + char const tc_event_base_id[] = "IDL:omg.org/CORBA/EventBase:1.0"; + char const tc_event_base_name[] = "EventBase"; + Value<char const *, + Field<char const *> *, + CORBA::tk_event, + TAO::Null_RefCount_policy> tc_EventBase (tc_event_base_id, + tc_event_base_name, + CORBA::VM_NONE, + 0, // Nil TypeCode + 0, // Field array + 0); // Field count } // End TypeCode namespace } // End TAO namespace @@ -78,5 +128,14 @@ namespace CORBA TypeCode_ptr const _tc_TypeCode = &TAO::TypeCode::tc_TypeCode; TypeCode_ptr const _tc_Principal = &TAO::TypeCode::tc_Principal; - TypeCode_ptr const _tc_Object = &TAO::TypeCode::tc_object; + TypeCode_ptr const _tc_string = &TAO::TypeCode::tc_string; + TypeCode_ptr const _tc_wstring = &TAO::TypeCode::tc_wstring; + + TypeCode_ptr const _tc_Object = &TAO::TypeCode::tc_Object; + TypeCode_ptr const _tc_Component = &TAO::TypeCode::tc_Component; + TypeCode_ptr const _tc_Home = &TAO::TypeCode::tc_Home; + + TypeCode_ptr const _tc_ValueBase = &TAO::TypeCode::tc_ValueBase; + TypeCode_ptr const _tc_EventBase = &TAO::TypeCode::tc_EventBase; + } diff --git a/TAO/tao/TypeCode/Value_TypeCode.cpp b/TAO/tao/TypeCode/Value_TypeCode.cpp index a58cbc78767..30b501163b0 100644 --- a/TAO/tao/TypeCode/Value_TypeCode.cpp +++ b/TAO/tao/TypeCode/Value_TypeCode.cpp @@ -426,7 +426,10 @@ TAO::TypeCode::Value<StringType, RefCountPolicy>::concrete_base_type ( ACE_ENV_SINGLE_ARG_DECL_NOT_USED) const { - return CORBA::TypeCode::_duplicate (*(this->concrete_base_)); + return + this->concrete_base_ == 0 + ? CORBA::TypeCode::_nil () + : CORBA::TypeCode::_duplicate (*(this->concrete_base_)); } diff --git a/TAO/tao/TypeCode/Value_TypeCode.h b/TAO/tao/TypeCode/Value_TypeCode.h index ea4d35b10bd..0036dbe227a 100644 --- a/TAO/tao/TypeCode/Value_TypeCode.h +++ b/TAO/tao/TypeCode/Value_TypeCode.h @@ -10,7 +10,6 @@ * @c CORBA::TypeCodes. * * @author Ossama Othman <ossama@dre.vanderbilt.edu> - * @author Carlos O'Ryan */ //============================================================================= @@ -72,7 +71,9 @@ namespace TAO CORBA::ValueModifer modifier, CORBA::TypeCode_ptr * concrete_base, Field<StringType> const * fields, - CORBA::ULong nfields); + CORBA::ULong nfields, + CORBA::ValueModifier type_modifier, + CORBA::TypeCode_ptr concrete_base_type); /** * @name TAO-specific @c CORBA::TypeCode Methods @@ -146,7 +147,7 @@ namespace TAO /// The @c ValueModifier of the @c valuetype of @c eventtype /// represented by this @c TypeCode. - CORBA::ValueModifer const value_modifier_; + CORBA::ValueModifer const type_modifier_; /// The @c TypeCode corresponding to the concrete base /// @c valuetype or @c eventtype. diff --git a/TAO/tao/TypeCode/Value_TypeCode.inl b/TAO/tao/TypeCode/Value_TypeCode.inl index 9f9135325f6..23def013276 100644 --- a/TAO/tao/TypeCode/Value_TypeCode.inl +++ b/TAO/tao/TypeCode/Value_TypeCode.inl @@ -7,12 +7,16 @@ template <typename StringType, CORBA::TCKind Kind, class RefCountPolicy> ACE_INLINE -TAO::TypeCode::Struct<StringType, FieldArrayType, RefCountPolicy>::Struct ( +TAO::TypeCode::Value<StringType, FieldArrayType, Kind, RefCountPolicy>::Value ( char const * id, char const * name, + CORBA::ValueModifier type_modifier, + CORBA::TypeCode_ptr * concrete_base_type, Field<StringType> const * fields, CORBA::ULong nfields) : base_attributes_ (id, name) + , type_modifier_ (type_modifier) + , concrete_base_ (concrete_base_type) , nfields_ (nfields) , fields_ (fields) { @@ -23,8 +27,10 @@ template <typename StringType, CORBA::TCKind Kind, class RefCountPolicy> ACE_INLINE TAO::TypeCode::Field<StringType> const * -TAO::TypeCode::Struct<StringType, - FieldArrayType>::fields (void) const +TAO::TypeCode::Value<StringType, + FieldArrayType, + Kind, + RefCountPolicy>::fields (void) const { return this->fields_; } @@ -34,8 +40,19 @@ TAO::TypeCode::Struct<StringType, // ------------------------------------------------------------- ACE_INLINE TAO::TypeCode::Field<CORBA::String_var> const * -TAO::TypeCode::Struct<CORBA::String_var, - ACE_Auto_Ptr_Array<Field<CORBA::String_var> const> >::fields (void) const +TAO::TypeCode::Value<CORBA::String_var, + ACE_Auto_Ptr_Array<Field<CORBA::String_var> const>, + CORBA::tk_value, + TAO::True_RefCount_Policy>::fields (void) const +{ + return this->fields_.get (); +} + +ACE_INLINE TAO::TypeCode::Field<CORBA::String_var> const * +TAO::TypeCode::Value<CORBA::String_var, + ACE_Auto_Ptr_Array<Field<CORBA::String_var> const>, + CORBA::tk_event, + TAO::True_RefCount_Policy>::fields (void) const { return this->fields_.get (); } |