4 * @file IFR_Components.pidl
6 * This file is used to generate the code in IFR_ComponentsC.{h,inl,cpp}.
7 * The original file Interface.idl was split into four pieces, to
8 * keep the generated files to a manageable size and reduce build
9 * time. This IDL file contains all the interfaces and other data
10 * types related to CORBA components.
13 #ifndef _IFR_COMPONENTS_IDL_
14 #define _IFR_COMPONENTS_IDL_
16 #include "tao/IFR_Client/IFR_Extended.pidl"
20 typeprefix CORBA "omg.org";
24 interface ComponentDef;
27 interface EventDef : ExtValueDef
31 interface Container : CORBA::Container
33 ComponentDef create_component ( in RepositoryId id,
35 in VersionSpec version,
36 in ComponentDef base_component,
37 in InterfaceDefSeq supports_interfaces );
39 HomeDef create_home ( in RepositoryId id,
41 in VersionSpec version,
43 in ComponentDef managed_component,
44 in InterfaceDefSeq supports_interfaces,
45 in ValueDef primary_key );
47 EventDef create_event ( in RepositoryId id,
49 in VersionSpec version,
51 in boolean is_abstract,
52 in ValueDef base_value,
53 in boolean is_truncatable,
54 in ValueDefSeq abstract_base_values,
55 in InterfaceDefSeq supported_interfaces,
56 in ExtInitializerSeq initializers );
59 interface ModuleDef : CORBA::ModuleDef, Container
63 interface Repository : CORBA::Repository, Container
67 interface ProvidesDef : Contained
69 attribute InterfaceDef interface_type;
72 struct ProvidesDescription
76 RepositoryId defined_in;
78 RepositoryId interface_type;
81 interface UsesDef : Contained
83 attribute InterfaceDef interface_type;
84 attribute boolean is_multiple;
87 struct UsesDescription
91 RepositoryId defined_in;
93 RepositoryId interface_type;
97 interface EventPortDef : Contained
99 // read/write interface
100 attribute EventDef event;
102 boolean is_a (in RepositoryId event_id);
105 struct EventPortDescription
109 RepositoryId defined_in;
114 interface EmitsDef : EventPortDef
118 interface PublishesDef : EventPortDef
122 interface ConsumesDef : EventPortDef
126 interface ComponentDef : ExtInterfaceDef
128 // read/write interface
129 attribute ComponentDef base_component;
130 attribute InterfaceDefSeq supported_interfaces;
133 ProvidesDef create_provides ( in RepositoryId id,
135 in VersionSpec version,
136 in InterfaceDef interface_type );
138 UsesDef create_uses ( in RepositoryId id,
140 in VersionSpec version,
141 in InterfaceDef interface_type,
142 in boolean is_multiple );
144 EmitsDef create_emits ( in RepositoryId id,
146 in VersionSpec version,
149 PublishesDef create_publishes ( in RepositoryId id,
151 in VersionSpec version,
154 ConsumesDef create_consumes ( in RepositoryId id,
156 in VersionSpec version,
160 typedef sequence<ProvidesDescription> ProvidesDescriptionSeq;
161 typedef sequence<UsesDescription> UsesDescriptionSeq;
162 typedef sequence<EventPortDescription> EventPortDescriptionSeq;
164 struct ComponentDescription
168 RepositoryId defined_in;
170 RepositoryId base_component;
171 RepositoryIdSeq supported_interfaces;
172 ProvidesDescriptionSeq provided_interfaces;
173 UsesDescriptionSeq used_interfaces;
174 EventPortDescriptionSeq emits_events;
175 EventPortDescriptionSeq publishes_events;
176 EventPortDescriptionSeq consumes_events;
177 ExtAttrDescriptionSeq attributes;
181 interface FactoryDef : OperationDef
185 interface FinderDef : OperationDef
189 interface HomeDef : ExtInterfaceDef
191 // read/write interface
192 attribute HomeDef base_home;
193 attribute InterfaceDefSeq supported_interfaces;
194 attribute ComponentDef managed_component;
195 attribute ValueDef primary_key;
198 FactoryDef create_factory ( in RepositoryId id,
200 in VersionSpec version,
201 in ParDescriptionSeq params,
202 in ExceptionDefSeq exceptions );
204 FinderDef create_finder ( in RepositoryId id,
206 in VersionSpec version,
207 in ParDescriptionSeq params,
208 in ExceptionDefSeq exceptions );
211 struct HomeDescription
215 RepositoryId defined_in;
217 RepositoryId base_home;
218 RepositoryId managed_component;
219 ValueDescription primary_key;
220 OpDescriptionSeq factories;
221 OpDescriptionSeq finders;
222 OpDescriptionSeq operations;
223 ExtAttrDescriptionSeq attributes;
229 #endif /* _IFR_COMPONENTS_IDL_ */