summaryrefslogtreecommitdiff
path: root/TAO/tao/ORB.cpp
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>1999-09-30 21:29:12 +0000
committerbala <balanatarajan@users.noreply.github.com>1999-09-30 21:29:12 +0000
commit67da8fb2f693cd33e75360f7e766741aefb26a9b (patch)
treeb196fc27681c0a33b0365bf2a4d3c86fffb65644 /TAO/tao/ORB.cpp
parentb7a60f57f672ef42064f63e4bb18b20ed4f1c0a6 (diff)
downloadATCD-67da8fb2f693cd33e75360f7e766741aefb26a9b.tar.gz
ChangeLogTag: Thu Sep 30 16:25:15 1999 Balachandran Natarajan <bala@cs.wustl.edu>
Diffstat (limited to 'TAO/tao/ORB.cpp')
-rw-r--r--TAO/tao/ORB.cpp74
1 files changed, 73 insertions, 1 deletions
diff --git a/TAO/tao/ORB.cpp b/TAO/tao/ORB.cpp
index 1d03b20cec3..35b8bed1fdc 100644
--- a/TAO/tao/ORB.cpp
+++ b/TAO/tao/ORB.cpp
@@ -1153,7 +1153,79 @@ CORBA_ORB::create_exception_tc (const char *id,
return interface_typecode;
}
-
+
+
+CORBA_TypeCode_ptr
+CORBA_ORB::create_alias_tc (const char *id,
+ const char *name,
+ const CORBA::TypeCode_ptr original_type,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ TAO_OutputCDR cdr;
+
+ cdr << TAO_ENCAP_BYTE_ORDER;
+
+ cdr << id;
+
+ cdr << name;
+
+ cdr << original_type;
+
+ CORBA_TypeCode_ptr interface_typecode = CORBA::TypeCode::_nil ();
+
+ ACE_NEW_THROW_EX (interface_typecode,
+ CORBA_TypeCode (CORBA::tk_alias,
+ cdr.total_length (),
+ cdr.buffer (),
+ 0,
+ 0),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK_RETURN (CORBA::TypeCode::_nil ());
+
+ return interface_typecode;
+}
+
+CORBA_TypeCode_ptr
+CORBA_ORB::create_struct_tc (const char *id,
+ const char *name,
+ CORBA_StructMemberSeq &members,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ TAO_OutputCDR cdr;
+
+ cdr << TAO_ENCAP_BYTE_ORDER;
+
+ cdr << id;
+
+ cdr << name;
+
+ // Number of members..
+ CORBA::ULong len = members.length ();
+ cdr << len;
+
+ for (CORBA::ULong index = 0; index < len; index++)
+ {
+ // Get the first member which is a string..
+ CORBA_StructMember struct_member = members[index];
+
+ cdr << struct_member.name.in ();
+
+ cdr << struct_member.type.in ();
+ }
+
+ CORBA_TypeCode_ptr interface_typecode = CORBA::TypeCode::_nil ();
+ ACE_NEW_THROW_EX (interface_typecode,
+ CORBA_TypeCode (CORBA::tk_struct,
+ cdr.total_length (),
+ cdr.buffer (),
+ 0,
+ 0),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK_RETURN (CORBA::TypeCode::_nil ());
+
+ return interface_typecode;
+}
+
#endif /*TAO_HAS_INTERFACE_REPOSITORY */
#endif /* TAO_HAS_MINIMUM_CORBA */