summaryrefslogtreecommitdiff
path: root/TAO/tao/IFR_Client/IFR_Components.pidl
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/IFR_Client/IFR_Components.pidl')
-rw-r--r--TAO/tao/IFR_Client/IFR_Components.pidl289
1 files changed, 289 insertions, 0 deletions
diff --git a/TAO/tao/IFR_Client/IFR_Components.pidl b/TAO/tao/IFR_Client/IFR_Components.pidl
new file mode 100644
index 00000000000..3bd9adeb3c8
--- /dev/null
+++ b/TAO/tao/IFR_Client/IFR_Components.pidl
@@ -0,0 +1,289 @@
+// -*- IDL -*-
+
+/**
+ * @file IFR_Components.pidl
+ *
+ * $Id$
+ *
+ * This file was used to generate the code in IFR_ComponentsC.{h,inl,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 -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" \
+ * -Wb,versioning_begin=TAO_BEGIN_VERSIONED_NAMESPACE_DECL \
+ * -Wb,versioning_end=TAO_END_VERSIONED_NAMESPACE_DECL \
+ * 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 \
+ * -Wb,pre_include="ace/pre.h" \
+ * -Wb,post_include="ace/post.h" \
+ * IFR_Components.pidl
+ *
+ * The only modification necessary to the skeleton 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 "tao/IFR_Client/IFR_Extended.pidl"
+
+module CORBA
+{
+ typeprefix CORBA "omg.org";
+
+ module ComponentIR
+ {
+ 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_ */