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 + -
显示快捷键?