typecodefactory.pidl

来自「这是广泛使用的通信开源项目,对于大容量,高并发的通讯要求完全能够胜任,他广泛可用」· PIDL 代码 · 共 187 行

PIDL
187
字号
//
// TypeCodeFactory.pidl,v 1.5 2003/10/28 18:29:34 bala Exp
//
// ================================================================
//
// = 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.
//
//   1. Patch this pidl file with
//
//      patch < diffs/TypeCodeFactory.pidl.diff
//
//   This will remove the CORBA module, rename most types foo
//   declared in it as CORBA_foo, unalias the simple typedefs
//   which don't have a CORBA_ analog in corbafwd.h.
//
//   2. Generate the code. The command used to generate code from this
//   IDL file is:
//
//     tao_idl -o orig -Ge 1 -GT -I../.. -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
//
//   3. Copy the generated files to the current directory.
//
//   4. Patch the generated files, using
//
//      patch < diffs/TypeCodeFactoryC.h.diff
//      patch < diffs/TypeCodeFactoryC.i.diff
//      patch < diffs/TypeCodeFactoryC.cpp.diff
//
//   If this fails for some reason, the files must be patched
//   by hand, and the diff files regenerated with
//
//      diff -wbu orig/TypeCodeFactoryC.h TypeCodeFactoryC.h > diffs/TypeCodeFactoryC.h.diff
//      diff -wbu orig/TypeCodeFactoryC.i TypeCodeFactoryC.i > diffs/TypeCodeFactoryC.i.diff
//      diff -wbu orig/TypeCodeFactoryC.cpp TypeCodeFactoryC.cpp > diffs/TypeCodeFactoryC.cpp.diff
//
//   5. Restore TypeCodeFactory.pidl.
//
// ================================================================

#ifndef _TYPECODEFACTORY_IDL_
#define _TYPECODEFACTORY_IDL_

#include "tao/IFR_Client/IFR_Extended.pidl"

#pragma prefix "omg.org"

module CORBA
{
// These are pulled in from #includes.
/*
  typedef string Identifier;
  typedef string RepositoryId;
  typedef short ValueModifier;
*/
  local interface TypeCodeFactory
  {
    TypeCode create_struct_tc (
        in RepositoryId id,
        in Identifier name,
        in StructMemberSeq members
      );

    TypeCode create_union_tc (
        in RepositoryId id,
        in Identifier name,
        in TypeCode discriminator_type,
        in UnionMemberSeq members
      );

    TypeCode create_enum_tc (
        in RepositoryId id,
        in Identifier name,
        in 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 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 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
      );

    TypeCode create_event_tc (
        in RepositoryId id,
        in Identifier name,
        in ValueModifier type_modifier,
        in TypeCode concrete_base,
        in ValueMemberSeq members
      );
  };
};

#endif // _TYPECODEFACTORY_IDL_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?