// $Id$ #ifndef DEPLOYMENT_DEPLOYMENTPLAN_IDL #define DEPLOYMENT_DEPLOYMENTPLAN_IDL #include "DAnCE/Deployment/Deployment_Base.idl" #include "tao/StringSeq.pidl" #include "tao/ULongSeq.pidl" #include "tao/Typecode_types.pidl" module Deployment { enum CCMComponentPortKind { Facet, SimplexReceptacle, MultiplexReceptacle, EventEmitter, EventPublisher, EventConsumer }; struct ComponentPortDescription { string name; string specificType; ::CORBA::StringSeq supportedType; boolean provider; boolean exclusiveProvider; boolean exclusiveUser; boolean optional; CCMComponentPortKind kind; }; typedef sequence < ComponentPortDescription > ComponentPortDescriptions; struct ComponentPropertyDescription { string name; CORBA::TypeCode type; }; typedef sequence < ComponentPropertyDescription > ComponentPropertyDescriptions; struct ComponentInterfaceDescription { string label; string UUID; string specificType; ::CORBA::StringSeq supportedType; ::CORBA::StringSeq idlFile; Properties configProperty; ComponentPortDescriptions port; ComponentPropertyDescriptions property; Properties infoProperty; }; struct MonolithicDeploymentDescription { string name; ::CORBA::StringSeq source; ::CORBA::ULongSeq artifactRef; Properties execParameter; Requirements deployRequirement; }; typedef sequence < MonolithicDeploymentDescription > MonolithicDeploymentDescriptions; enum ResourceUsageKind { None, InstanceUsesResource, ResourceUsesInstance, PortUsesResource, ResourceUsesPort }; struct InstanceResourceDeploymentDescription { ResourceUsageKind resourceUsage; string requirementName; string resourceName; Properties property; }; typedef sequence < InstanceResourceDeploymentDescription > InstanceResourceDeploymentDescriptions; struct InstanceDeploymentDescription { string name; string node; ::CORBA::StringSeq source; unsigned long implementationRef; Properties configProperty; InstanceResourceDeploymentDescriptions deployedResource; InstanceResourceDeploymentDescriptions deployedSharedResource; }; typedef sequence < InstanceDeploymentDescription > InstanceDeploymentDescriptions; struct ComponentExternalPortEndpoint { string portName; }; typedef sequence < ComponentExternalPortEndpoint > ComponentExternalPortEndpoints; struct PlanSubcomponentPortEndpoint { string portName; boolean provider; CCMComponentPortKind kind; unsigned long instanceRef; }; typedef sequence < PlanSubcomponentPortEndpoint > PlanSubcomponentPortEndpoints; //@! in DOCGroup provider, portName and supportesType are removed struct ExternalReferenceEndpoint { string location; boolean provider; string portName; ::CORBA::StringSeq supportedType; }; typedef sequence < ExternalReferenceEndpoint > ExternalReferenceEndpoints; struct ConnectionResourceDeploymentDescription { string targetName; string requirementName; string resourceName; Properties property; }; typedef sequence < ConnectionResourceDeploymentDescription > ConnectionResourceDeploymentDescriptions; struct PlanConnectionDescription { string name; ::CORBA::StringSeq source; Requirements deployRequirement; ComponentExternalPortEndpoints externalEndpoint; PlanSubcomponentPortEndpoints internalEndpoint; ExternalReferenceEndpoints externalReference; ConnectionResourceDeploymentDescriptions deployedResource; }; typedef sequence < PlanConnectionDescription > PlanConnectionDescriptions; struct PlanSubcomponentPropertyReference { string propertyName; unsigned long instanceRef; }; typedef sequence < PlanSubcomponentPropertyReference > PlanSubcomponentPropertyReferences; struct PlanPropertyMapping { string name; ::CORBA::StringSeq source; string externalName; PlanSubcomponentPropertyReferences delegatesTo; }; typedef sequence < PlanPropertyMapping > PlanPropertyMappings; struct ImplementationDependency { string requiredType; }; typedef sequence < ImplementationDependency > ImplementationDependencies; struct ResourceDeploymentDescription { string requirementName; string resourceName; Properties property; }; typedef sequence < ResourceDeploymentDescription > ResourceDeploymentDescriptions; struct ArtifactDeploymentDescription { string name; ::CORBA::StringSeq location; string node; ::CORBA::StringSeq source; Properties execParameter; Requirements deployRequirement; ResourceDeploymentDescriptions deployedResource; }; typedef sequence < ArtifactDeploymentDescription > ArtifactDeploymentDescriptions; enum PlanLocalityKind { PlanSameProcess, PlanDifferentProcess, PlanNoConstraint }; struct PlanLocality { PlanLocalityKind constraint; ::CORBA::ULongSeq constrainedInstanceRef; }; //@! in DOCGroup not implemented typedef sequence < PlanLocality > PlanLocalities; //@! in DOCGroup localityConstraint is commented struct DeploymentPlan { string label; string UUID; ComponentInterfaceDescription realizes; MonolithicDeploymentDescriptions implementation; InstanceDeploymentDescriptions instance; PlanConnectionDescriptions connection; PlanPropertyMappings externalProperty; ImplementationDependencies dependsOn; ArtifactDeploymentDescriptions artifact; Properties infoProperty; PlanLocalities localityConstraint; }; }; #endif /* DEPLOYMENT_DATA_IDL */