summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2005-03-11 06:00:49 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2005-03-11 06:00:49 +0000
commitaccde0b7fd4c99785d1495573446f72234818aa9 (patch)
tree110ad3765da9696a5b18635980eda48238c384d6
parent846211c33d2c82df4483d16b2e9c47053dce02c2 (diff)
downloadATCD-accde0b7fd4c99785d1495573446f72234818aa9.tar.gz
*** empty log message ***
-rw-r--r--TAO/tao/TypeCode/Struct_TypeCode.inl22
-rw-r--r--TAO/tao/TypeCode/TypeCode.inl2
-rw-r--r--TAO/tao/TypeCode/TypeCode_Constants.cpp63
-rw-r--r--TAO/tao/TypeCode/Value_TypeCode.cpp5
-rw-r--r--TAO/tao/TypeCode/Value_TypeCode.h7
-rw-r--r--TAO/tao/TypeCode/Value_TypeCode.inl27
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 ();
}