diff options
Diffstat (limited to 'TAO/tao/TypeCodeFactory/TypeCodeFactory.pidl')
-rw-r--r-- | TAO/tao/TypeCodeFactory/TypeCodeFactory.pidl | 171 |
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_ |