summaryrefslogtreecommitdiff
path: root/TAO/tao/TypeCodeFactory/TypeCodeFactory.pidl
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/TypeCodeFactory/TypeCodeFactory.pidl')
-rw-r--r--TAO/tao/TypeCodeFactory/TypeCodeFactory.pidl171
1 files changed, 171 insertions, 0 deletions
diff --git a/TAO/tao/TypeCodeFactory/TypeCodeFactory.pidl b/TAO/tao/TypeCodeFactory/TypeCodeFactory.pidl
new file mode 100644
index 00000000000..c6fca988bc3
--- /dev/null
+++ b/TAO/tao/TypeCodeFactory/TypeCodeFactory.pidl
@@ -0,0 +1,171 @@
+//
+// $Id$
+//
+// ================================================================
+//
+// = LIBRARY
+// TAO/tao/TypeCodeFactory
+//
+// = FILENAME
+// TypeCodeFactory.pidl
+//
+// = DESCRIPTION
+// This file was used to generate the code in TypeCodeFactoryC.{h,i,cpp}.
+// It was originally part of Interface.idl, but since the TypeCodeFactory
+// has been made into a separate library, and the TypeCodeFactory interface
+// has been made local, it is simpler to generate the necessary stub
+// code in TypeCodeFactoryC.* by splitting Interface.idl into two
+// parts.
+//
+// The command used to generate code from this file is:
+//
+// tao_idl -o orig -Ge 1 -ci "C.inl" \
+// -Wb,export_macro=TAO_TypeCodeFactory_Export \
+// -Wb,export_include=typecodefactory_export.h \
+// -Wb,pre_include="ace/pre.h" \
+// -Wb,post_include="ace/post.h" \
+// TypeCodeFactory.pidl
+//
+// after the file is generated a patch must be applied. The patch
+// removes generated code for the typedefs appearing at the top of
+// the IDL file below, since they are already included in the TAO
+// library. Also the scoped names of the Interface Repository datatypes
+// used in this file have been changed to their flat name counterparts
+// (see the explanation in TAO/tao/IFR_Client/Interface.pidl).
+//
+// Apply patches using the following commands:
+//
+// patch < diffs/TypeCodeFactoryC.h.diff
+// patch < diffs/TypeCodeFactoryC.inl.diff
+// patch < diffs/TypeCodeFactoryC.cpp.diff
+//
+// These patches are used to automate the above changes when the
+// code, which is part of the TAO library, must be regenerated because
+// of modifications to the output of the TAO IDL compiler.
+//
+// Note: The diffs were generated with these commands:
+//
+// diff -wbu orig/TypeCodeFactoryC.h TypeCodeFactoryC.h > diffs/TypeCodeFactoryC.h.diff
+// diff -wbu orig/TypeCodeFactoryC.inl TypeCodeFactoryC.inl > diffs/TypeCodeFactoryC.inl.diff
+// diff -wbu orig/TypeCodeFactoryC.cpp TypeCodeFactoryC.cpp > diffs/TypeCodeFactoryC.cpp.diff
+//
+// ================================================================
+
+#ifndef _TYPECODEFACTORY_IDL_
+#define _TYPECODEFACTORY_IDL_
+
+#pragma prefix "omg.org"
+
+module CORBA
+{
+ typedef string Identifier;
+ typedef string RepositoryId;
+ typedef short ValueModifier;
+
+ local interface TypeCodeFactory // PIDL
+ {
+ TypeCode create_struct_tc (
+ in RepositoryId id,
+ in Identifier name,
+ in IR::StructMemberSeq members
+ );
+
+ TypeCode create_union_tc (
+ in RepositoryId id,
+ in Identifier name,
+ in TypeCode discriminator_type,
+ in IR::UnionMemberSeq members
+ );
+
+ TypeCode create_enum_tc (
+ in RepositoryId id,
+ in Identifier name,
+ in IR::EnumMemberSeq members
+ );
+
+ TypeCode create_alias_tc (
+ in RepositoryId id,
+ in Identifier name,
+ in TypeCode original_type
+ );
+
+ TypeCode create_exception_tc (
+ in RepositoryId id,
+ in Identifier name,
+ in IR::StructMemberSeq members
+ );
+
+ TypeCode create_interface_tc (
+ in RepositoryId id,
+ in Identifier name
+ );
+
+ TypeCode create_string_tc (
+ in unsigned long bound
+ );
+
+ TypeCode create_wstring_tc (
+ in unsigned long bound
+ );
+
+ TypeCode create_fixed_tc (
+ in unsigned short digits,
+ in unsigned short scale
+ );
+
+ TypeCode create_sequence_tc (
+ in unsigned long bound,
+ in TypeCode element_type
+ );
+
+ TypeCode create_array_tc (
+ in unsigned long length,
+ in TypeCode element_type
+ );
+
+ TypeCode create_value_tc (
+ in RepositoryId id,
+ in Identifier name,
+ in ValueModifier type_modifier,
+ in TypeCode concrete_base,
+ in IR::ValueMemberSeq members
+ );
+
+ TypeCode create_value_box_tc (
+ in RepositoryId id,
+ in Identifier name,
+ in TypeCode boxed_type
+ );
+
+ TypeCode create_native_tc (
+ in RepositoryId id,
+ in Identifier name
+ );
+
+ TypeCode create_recursive_tc (
+ in RepositoryId id
+ );
+
+ TypeCode create_abstract_interface_tc (
+ in RepositoryId id,
+ in Identifier name
+ );
+
+ TypeCode create_local_interface_tc (
+ in RepositoryId id,
+ in Identifier name
+ );
+ TypeCode create_component_tc (
+ in RepositoryId id,
+ in Identifier name
+ );
+
+ TypeCode create_home_tc (
+ in RepositoryId id,
+ in Identifier name
+ );
+ };
+};
+
+#pragma prefix ""
+#endif // _TYPECODEFACTORY_IDL_