diff options
Diffstat (limited to 'TAO/CIAO/docs/templates/Executor.idl')
-rw-r--r-- | TAO/CIAO/docs/templates/Executor.idl | 246 |
1 files changed, 0 insertions, 246 deletions
diff --git a/TAO/CIAO/docs/templates/Executor.idl b/TAO/CIAO/docs/templates/Executor.idl deleted file mode 100644 index 259bffac0df..00000000000 --- a/TAO/CIAO/docs/templates/Executor.idl +++ /dev/null @@ -1,246 +0,0 @@ -// $Id$ - -// =========================================================== -// -// @file Executor.idl -// -// The purpose of this IDL file is to serve as a template for the CIDL -// generated equivalent executor file. The CIDL will generate this -// file directly which, in turn, gets compiled by the TAO IDL compiler -// to generate the C++ mappings for the stuff defined in this file -// into a set of [idl-name]EC.{h,inl,cpp} files. -// -// This intermediate step is necessary because component implemenetors -// will need to extend these executor definitions (thru inheritance) -// to implemenet more complex executor implementations, such as those -// that support session component interface. (This is necessary to -// properly support C++ mapping for features such as interface -// narrowing.) -// -// What are missing in the template for executor mappings are the -// exception specifications for most operations. -// -// @author Nanbor Wang <nanbor@cs.wustl.edu> -// -// =========================================================== - -#ifndef [component_idl]E_IDL -#define [component_idl]E_IDL - -#include "CCM_Container.idl" // Found in $(CIAO_ROOT)/ciao - // For various definitions of container - // internal/callback interfaces -#include "[component_idl].idl" // Original component IDL definition -// @@ We may need to include other *E.idl here.... Can't figure out -// if we can do this automagically or not. - -##if there are module definitions, preserve them all -module [module_name] { -##endif - -//////////////////////////////////////////////////////////////////// -//// * Iterate thru all supported interface types -//// It's possible that we need to put some of the common supported -//// interface definitions into a separate compilation unit. How do we -//// specify that in CCIDL? I haven't figured that out. Perhaps -//// allowing CCIDL to compile files that contain no component -//// definition? -##foreach [interface_type] in (types of all supported interface) generate: - - local interface CCM_[interface_type] : [interface_type] - { - }; - -##end foreach [interface_type] - -//////////////////////////////////////////////////////////////////// -//// * Iterate thru all facet ('provides' interface) interface types -//// It's possible that we need to put some of the common facet -//// definitions into a separate compilation unit. How do we -//// specify that in CCIDL? I haven't figured that out. Perhaps -//// allowing CCIDL to compile files that contain no component -//// definition? -##foreach [facet_interface_type] in (types of all facets) generate: - - local interface CCM_[facet_interface_type] : [facet_interface_type] - { - }; - -##end foreach [facet_interface_type] - -//////////////////////////////////////////////////////////////////// -//// * Iterate thru all event ('emits', "publishes', or 'consumes') types -//// It's possible that we need to put some of the EventConsumer -//// definitions into a separate compilation unit. Like in the case -//// of facets interface mappings, how do we -//// specify that in CCIDL? I haven't figured that out. Perhaps -//// allowing CCIDL to compile files that contain no component -//// definition? - -##foreach [eventtype] in (all eventtypes) generate: - - local interface CCM_[eventtype]Consumer - { - void push (in [eventtype] ev); - }; - -##end foreach [eventtype] - - -//////////////////////////////////////////////////////////////////// -//// * Iterate thru all component definitions in the IDL files. -//// Notice that there's no distinction between entity and session -//// components in executor mappings. - -##foreach [component basename] in (all component definitions) generate: - - // Component Main Executor Interface. We currently do not - // support Executor-based implementation. - - local interface CCM_[component basename]_Executor - : -## if [component basename] inherits from [parent component name] - CCM_[parent component name]_Executor -## else - ::Components::EnterpriseComponent -## endif -## foreach [interface name] in (all component supported interfaces) generate: - , [interface name] -## end foreach [interface name] - - { -## foreach [attribute definition] in (attributes defined in [component basename]) generate: - [attribute definition]; -## end foreach [attribute definition] - - }; - - // Monolithic component executor. - // For implementing monolithic component call back interface. - - local interface CCM_[component basename] - : -## if [component basename] inherits from [parent component name] - CCM_[parent component name] -## else - ::Components::EnterpriseComponent -## endif -## foreach [interface name] in (all component supported interfaces) generate: - , [interface name] -## end foreach [interface name] - - { -## foreach [attribute definition] in (attributes defined in [component basename]) generate: - [attribute definition]; -## end foreach [attribute definition] - -## foreach [facet name] with [facet type] in (list of all provided interfaces) generate: - CCM_[facet type] get_[facet name] (); -## end foreach [facet name] with [facet type] - -## foreach [event name] with [eventtype] in (list of all event sinks) generate: - void push_[event name] (in [eventtype] ev); -## end foreach [event name] with [eventtype] - - }; - - /** - * Component Context Interface - * - * Notice that we are taking a shortcut here to inherit the - * component-specific context from SessionContext directly instead - * of CCMContext. - */ - local interface CCM_[component basename]_Context - : -## if [component basename] inherits from [parent component name] - CCM_[parent component name]_Context -## else - ::Components::SessionContext -## endif - { - -## foreach [receptacle name] with [uses type] in (list of all 'uses' interfaces) generate: -## if [receptacle name] is a simplex receptacle ('uses') - [uses type] get_connection_[receptacle name] (); -## else ([receptacle name] is a multiplex ('uses multiple') receptacle) - // [receptacle name]Connections typedef'ed as a sequence of - // struct [receptacle name]Connection. - [receptacle name]Connections get_connections_[receptacle name] (); -## endif [receptacle name] -## end foreach [receptacle name] with [uses type] - -## foreach [event name] with [eventtype] in (list of all event sources) generate: - void push_[event name] (in [eventtype] ev); -## end foreach [event name] with [eventtype] - - }; - -##end foreach [component basename] - - -//////////////////////////////////////////////////////////////////// -//// * Iterate thru all home definitions in the IDL files. - -##foreach [home basename] in (all home definitions) generate: - - local interface CCM_[home basename]Explicit - : -## if [home basename] inherits from [parent home name] - CCM_[parent home name]Explicit -## else - ::Components::HomeExecutorBase -## endif -## foreach [interface name] in (all home supported interfaces) generate: - , [interface name] -## end foreach [interface name] - { -##foreach [operation] in (all explicit operations defined in [home basename]) - - // The operation decl here. - -## end foreach opeartion - -##foreach [factory name] in (all factory operations defined in [home basename]) - ::Components::EnterpriseComponent [factory name] (....) - raise (Components::CreateFailure, ....); -##end foreach [factory name] - -##foreach [finder name] in (all finder operations defined in [home basename]) - ::Components::EnterpriseComponent [finder name] (....) - raise (Components::FinderFailure, ....); -##end foreach [finder name] - }; - - local interface CCM_[home basename]Implicit - { -## if [home basename] is a keyless home - ::Components::EnterpriseComponent create () - raises (::Components::CCMException); -## else [home basename] is key'ed home with [key type] - // We do not support key'ed home at the moment but we might - // as well generate the mapping. - ::Components::EnterpriseComponent create (in [key type] key) - raises (::Components::CCMException); - - ::Components::EnterpriseComponent find_by_primary_key (in [key type] key) - raises (::Components::CCMException); - - void remove (in [key type] key) - raises (::Components::CCMException); -## endif (key'ed or keyless home) - }; - - local interface CCM_[home basename] - : CCM_[home basename]Explicit, - CCM_[home basename]Implicit - { - }; - -##end foreach [home basename] - -##if there are module definitions, preserve them all -}; -##endif - -#endif /* [component_idl]E_IDL */ |