ifr_components.pidl
来自「这是广泛使用的通信开源项目,对于大容量,高并发的通讯要求完全能够胜任,他广泛可用」· PIDL 代码 · 共 293 行
PIDL
293 行
//
// IFR_Components.pidl,v 1.4 2003/06/17 15:09:24 parsons Exp
//
// ================================================================
//
// = LIBRARY
// TAO_IFR_Client
//
// = FILENAME
// IFR_Components.pidl
//
// = DESCRIPTION
// This file was used to generate the code in IFR_ComponentsC.{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 all the interfaces and other data
// types related to CORBA components.
//
// The command used to generate code from this IDL file is:
//
// tao_idl -Ge 1 -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_Components.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_Components.pidl
//
// The only modification necessary to the skelton files is to
// change
//
// #include "IFR_ComponentsC.h"
//
// to
//
// #include "tao/IFR_Client/IFR_ComponentsC.h"
//
// in IFR_ComponentsS.h. The stub files may be deleted from the IFRService
// directory.
//
// ================================================================
#ifndef _IFR_COMPONENTS_IDL_
#define _IFR_COMPONENTS_IDL_
#include "IFR_Extended.pidl"
module CORBA
{
module ComponentIR
{
typeprefix ComponentIR "omg.org";
interface ComponentDef;
interface HomeDef;
interface EventDef : ExtValueDef
{
};
interface Container : CORBA::Container
{
ComponentDef create_component (
in RepositoryId id,
in Identifier name,
in VersionSpec version,
in ComponentDef base_component,
in InterfaceDefSeq supports_interfaces
);
HomeDef create_home (
in RepositoryId id,
in Identifier name,
in VersionSpec version,
in HomeDef base_home,
in ComponentDef managed_component,
in InterfaceDefSeq supports_interfaces,
in ValueDef primary_key
);
EventDef create_event (
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 ModuleDef : CORBA::ModuleDef,
Container
{
};
interface Repository : CORBA::Repository,
Container
{
};
interface ProvidesDef : Contained
{
attribute InterfaceDef interface_type;
};
struct ProvidesDescription
{
Identifier name;
RepositoryId id;
RepositoryId defined_in;
VersionSpec version;
RepositoryId interface_type;
};
interface UsesDef : Contained
{
attribute InterfaceDef interface_type;
attribute boolean is_multiple;
};
struct UsesDescription
{
Identifier name;
RepositoryId id;
RepositoryId defined_in;
VersionSpec version;
RepositoryId interface_type;
boolean is_multiple;
};
interface EventPortDef : Contained
{
// read/write interface
attribute EventDef event;
// read interface
boolean is_a (in RepositoryId event_id);
};
struct EventPortDescription
{
Identifier name;
RepositoryId id;
RepositoryId defined_in;
VersionSpec version;
RepositoryId event;
};
interface EmitsDef : EventPortDef
{
};
interface PublishesDef : EventPortDef
{
};
interface ConsumesDef : EventPortDef
{
};
interface ComponentDef : ExtInterfaceDef
{
// read/write interface
attribute ComponentDef base_component;
attribute InterfaceDefSeq supported_interfaces;
// write interface
ProvidesDef create_provides (
in RepositoryId id,
in Identifier name,
in VersionSpec version,
in InterfaceDef interface_type
);
UsesDef create_uses (
in RepositoryId id,
in Identifier name,
in VersionSpec version,
in InterfaceDef interface_type,
in boolean is_multiple
);
EmitsDef create_emits (
in RepositoryId id,
in Identifier name,
in VersionSpec version,
in EventDef event
);
PublishesDef create_publishes (
in RepositoryId id,
in Identifier name,
in VersionSpec version,
in EventDef event
);
ConsumesDef create_consumes (
in RepositoryId id,
in Identifier name,
in VersionSpec version,
in EventDef event
);
};
typedef sequence<ProvidesDescription> ProvidesDescriptionSeq;
typedef sequence<UsesDescription> UsesDescriptionSeq;
typedef sequence<EventPortDescription> EventPortDescriptionSeq;
struct ComponentDescription
{
Identifier name;
RepositoryId id;
RepositoryId defined_in;
VersionSpec version;
RepositoryId base_component;
RepositoryIdSeq supported_interfaces;
ProvidesDescriptionSeq provided_interfaces;
UsesDescriptionSeq used_interfaces;
EventPortDescriptionSeq emits_events;
EventPortDescriptionSeq publishes_events;
EventPortDescriptionSeq consumes_events;
ExtAttrDescriptionSeq attributes;
TypeCode type;
};
interface FactoryDef : OperationDef
{
};
interface FinderDef : OperationDef
{
};
interface HomeDef : ExtInterfaceDef
{
// read/write interface
attribute HomeDef base_home;
attribute InterfaceDefSeq supported_interfaces;
attribute ComponentDef managed_component;
attribute ValueDef primary_key;
// write interface
FactoryDef create_factory (
in RepositoryId id,
in Identifier name,
in VersionSpec version,
in ParDescriptionSeq params,
in ExceptionDefSeq exceptions
);
FinderDef create_finder (
in RepositoryId id,
in Identifier name,
in VersionSpec version,
in ParDescriptionSeq params,
in ExceptionDefSeq exceptions
);
};
struct HomeDescription
{
Identifier name;
RepositoryId id;
RepositoryId defined_in;
VersionSpec version;
RepositoryId base_home;
RepositoryId managed_component;
ValueDescription primary_key;
OpDescriptionSeq factories;
OpDescriptionSeq finders;
OpDescriptionSeq operations;
ExtAttrDescriptionSeq attributes;
TypeCode type;
};
};
};
#endif /* _IFR_COMPONENTS_IDL_ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?