ifr_base.pidl

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

PIDL
403
字号
//
// IFR_Base.pidl,v 1.7 2003/12/31 16:11:03 boris Exp
//
// ================================================================
//
// = LIBRARY
//   TAO_IFR_Client
//
// = FILENAME
//   IFR_Base.pidl
//
// = DESCRIPTION
//   This file was used to generate the code in IFR_BaseC.{h,i,cpp}.
//   The original file Interface.idl was split into four pieces, to
//   keep the generated files to a manageable size and reduce build
//   time. This IDL file contains the abstract base interfaces of
//   the IFR as well as many of the non-interface data types used
//   by all other IFR interfaces.
//
//   The command used to generate code from this IDL file is:
//
//     tao_idl -Ge 1 -GT -I.. \
//          -Wb,export_macro=TAO_IFR_Client_Export \
//          -Wb,export_include=ifr_client_export.h \
//          -Wb,pre_include="ace/pre.h" \
//          -Wb,post_include="ace/post.h" \
//          IFR_Base.pidl
//
//   Only the stub files are used in the TAO_IFR_Client library. The
//   skeleton files can be deleted from this directory.
//
//   No patching of the generated stub files is necessary.
//
//   To generate the skeleton files for the IFR Service, the command is:
//
//     tao_idl -o ../../orbsvcs/orbsvcs/IFRService -Ge 1 \
//          -Wb,pre_include="ace/pre.h" \
//          -Wb,post_include="ace/post.h" \
//          IFR_Base.pidl
//
//   The only modification necessary to the skelton files is to 
//   change
//
//   #include "IFR_BaseC.h"
//
//   to
//
//   #include "tao/IFR_Client/IFR_BaseC.h"
//
//   in IFR_BaseS.h. The stub files may be deleted from the IFRService
//   directory.
//
// ================================================================

#ifndef _IFR_BASE_IDL_
#define _IFR_BASE_IDL_

#include <orb.idl>

module CORBA
{
  typeprefix CORBA "omg.org";

  typedef string ScopedName;

  enum DefinitionKind
  {
    dk_none,
    dk_all,
    dk_Attribute,
    dk_Constant,
    dk_Exception,
    dk_Interface,
    dk_Module,
    dk_Operation,
    dk_Typedef,
    dk_Alias,
    dk_Struct,
    dk_Union,
    dk_Enum,
    dk_Primitive,
    dk_String,
    dk_Sequence,
    dk_Array,
    dk_Repository,
    dk_Wstring,
    dk_Fixed,
    dk_Value,
    dk_ValueBox,
    dk_ValueMember,
    dk_Native,
    dk_AbstractInterface,
    dk_LocalInterface,
    dk_Component,
    dk_Home,
    dk_Factory,
    dk_Finder,
    dk_Emits,
    dk_Publishes,
    dk_Consumes,
    dk_Provides,
    dk_Uses,
    dk_Event
  };

  interface IRObject
  {
    // read interface
    readonly attribute DefinitionKind def_kind;

    // write interface
    void destroy ();
  };

  typedef string VersionSpec;

  interface Contained;
  interface Repository;
  interface Container;

  interface Contained : IRObject
  {
    // read/write interface
    attribute RepositoryId id;
    attribute Identifier name;
    attribute VersionSpec version;

    // read interface
    readonly attribute Container defined_in;
    readonly attribute ScopedName absolute_name;
    readonly attribute Repository containing_repository;

    struct Description
    {
      DefinitionKind kind;
      any value;
    };

    Description describe ();

    // write interface
    void move (
        in Container new_container,
        in Identifier new_name,
        in VersionSpec new_version
      );
  };

  interface ModuleDef;
  interface ConstantDef;
  interface IDLType;
  interface StructDef;
  interface UnionDef;
  interface EnumDef;
  interface AliasDef;

  interface InterfaceDef;
  typedef sequence<InterfaceDef> InterfaceDefSeq;

  interface ExceptionDef;
  interface NativeDef;

  interface ValueDef;
  typedef sequence<ValueDef> ValueDefSeq;

  interface ValueBoxDef;

  interface AbstractInterfaceDef;
  typedef sequence<AbstractInterfaceDef> AbstractInterfaceDefSeq;

  interface LocalInterfaceDef;
  typedef sequence<LocalInterfaceDef> LocalInterfaceDefSeq;

  interface ExtInterfaceDef;
  typedef sequence <ExtInterfaceDef> ExtInterfaceDefSeq;

  interface ExtValueDef;
  typedef sequence <ExtValueDef> ExtValueDefSeq;

  interface ExtAbstractInterfaceDef;
  typedef sequence <ExtAbstractInterfaceDef>

  ExtAbstractInterfaceDefSeq;
  interface ExtLocalInterfaceDef;

  typedef sequence <ExtLocalInterfaceDef>
  ExtLocalInterfaceDefSeq;

  typedef sequence <Contained> ContainedSeq;

  struct StructMember
  {
    Identifier name;
    TypeCode type;
    IDLType type_def;
  };

  typedef sequence <StructMember> StructMemberSeq;

  struct Initializer
  {
    StructMemberSeq members;
    Identifier name;
  };

  typedef sequence <Initializer> InitializerSeq;

  struct ExceptionDescription 
  {
    Identifier name;
    RepositoryId id;
    RepositoryId defined_in;
    VersionSpec version;
    TypeCode type;
  };

  typedef sequence <ExceptionDescription> ExcDescriptionSeq;

  struct ExtInitializer 
  {
    StructMemberSeq members;
    ExcDescriptionSeq exceptions;
    Identifier name;
  };

  typedef sequence <ExtInitializer> ExtInitializerSeq;

  struct UnionMember
  {
    Identifier name;
    any label;
    TypeCode type;
    IDLType type_def;
  };

  typedef sequence <UnionMember> UnionMemberSeq;
  typedef sequence <Identifier> EnumMemberSeq;

  interface Container : IRObject
  {
    // read interface
    Contained lookup (
        in ScopedName search_name
      );
    ContainedSeq contents (
        in DefinitionKind limit_type,
        in boolean exclude_inherited
      );
    ContainedSeq lookup_name (
        in Identifier search_name,
        in long levels_to_search,
        in DefinitionKind limit_type,
        in boolean exclude_inherited
      );
    struct Description
    {
      Contained contained_object;
      DefinitionKind kind;
      any value;
    };

    typedef sequence<Description> DescriptionSeq;

    DescriptionSeq describe_contents (
        in DefinitionKind limit_type,
        in boolean exclude_inherited,
        in long max_returned_objs
      );

    // write interface

    ModuleDef create_module (
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version
      );

    ConstantDef create_constant (
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version,
        in IDLType type,
        in any value
      );

    StructDef create_struct (
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version,
        in StructMemberSeq members
      );

    UnionDef create_union (
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version,
        in IDLType discriminator_type,
        in UnionMemberSeq members
      );

    EnumDef create_enum (
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version,
        in EnumMemberSeq members
      );

    AliasDef create_alias (
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version,
        in IDLType original_type
      );

    InterfaceDef create_interface (
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version,
        in InterfaceDefSeq base_interfaces
      );

    ValueDef create_value (
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version,
        in boolean is_custom,
        in boolean is_abstract,
        in ValueDef base_value,
        in boolean is_truncatable,
        in ValueDefSeq abstract_base_values,
        in InterfaceDefSeq supported_interfaces,
        in InitializerSeq initializers
      );

    ValueBoxDef create_value_box(
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version,
        in IDLType original_type_def
      );

    ExceptionDef create_exception(
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version,
        in StructMemberSeq members
      );

    NativeDef create_native(
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version
      );

    AbstractInterfaceDef create_abstract_interface (
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version,
        in AbstractInterfaceDefSeq base_interfaces
      );

    LocalInterfaceDef create_local_interface (
        in RepositoryId id,
        in Identifier name,
        in VersionSpec version,
        in InterfaceDefSeq base_interfaces
      );

    ExtValueDef create_ext_value (
	in RepositoryId id,
	in Identifier name,
	in VersionSpec version,
	in boolean is_custom,
	in boolean is_abstract,
	in ValueDef base_value,
	in boolean is_truncatable,
	in ValueDefSeq abstract_base_values,
	in InterfaceDefSeq supported_interfaces,
	in ExtInitializerSeq initializers
      );
  };

  interface IDLType : IRObject
  {
    readonly attribute TypeCode type;
  };

  interface TypedefDef : Contained, IDLType
  {
  };

  struct TypeDescription
  {
    Identifier name;
    RepositoryId id;
    RepositoryId defined_in;
    VersionSpec version;
    TypeCode type;
  };
};

#endif /* _IFR_BASE_IDL_ */

⌨️ 快捷键说明

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