summaryrefslogtreecommitdiff
path: root/trunk/CIAO/DAnCE/Deployment/Deployment_Packaging_Data.idl
blob: 99619f4699c12d9338e9a6fe4908c2cebc928884 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
// $Id$

#ifndef PACKAGING_DATA_IDL
#define PACKAGING_DATA_IDL

#include "DAnCE/Deployment/Deployment_Data.idl"

module Deployment
{
  struct ComponentPackageImport {
    ::CORBA::StringSeq location;
  };

  typedef sequence < ComponentPackageImport > ComponentPackageImports;

  struct SubcomponentPropertyReference {
    string propertyName;
    unsigned long instanceRef;
  };

  struct SubcomponentPortEndpoint {
    string portName;
    unsigned long instanceRef;
  };

  typedef sequence < SubcomponentPortEndpoint > SubcomponentPortEndpoints;

  typedef sequence < SubcomponentPropertyReference > SubcomponentPropertyReferences;

  struct AssemblyPropertyMapping {
    string name;
    string externalName;
    SubcomponentPropertyReferences delegatesTo;
  };

  typedef sequence < AssemblyPropertyMapping > AssemblyPropertyMappings;

  struct NamedImplementationArtifact;

  typedef sequence < NamedImplementationArtifact > NamedImplementationArtifacts;

  struct ImplementationArtifactDescription {
    string label;
    string UUID;
    ::CORBA::StringSeq location;
    Properties execParameter;
    Requirements deployRequirement;
    NamedImplementationArtifacts dependsOn;
    Properties infoProperty;
  };

  struct NamedImplementationArtifact {
    string name;
    ImplementationArtifactDescription referencedArtifact;
  };
  
  // @@changed: order of members
  struct MonolithicImplementationDescription {
    Properties nodeExecParameter;
    NamedImplementationArtifacts primaryArtifact;
    ImplementationRequirements deployRequirement;
    Properties componentExecParameter;
  };

  typedef sequence < MonolithicImplementationDescription > MonolithicImplementationDescriptions;

  struct PackageConfiguration;

  typedef sequence < PackageConfiguration > PackageConfigurations;

  struct ComponentPackageDescription;

  typedef sequence < ComponentPackageDescription > ComponentPackageDescriptions;

  struct SubcomponentInstantiationDescription {
    string name;
    ComponentPackageDescriptions basePackage;
    PackageConfigurations specializedConfig;
    Requirements selectRequirement;
    Properties configProperty;
    ComponentPackageReferences referencedPackage;
    ComponentPackageImports importedPackage;
  };

  typedef sequence < SubcomponentInstantiationDescription > SubcomponentInstantiationDescriptions;

  struct AssemblyConnectionDescription {
    string name;
    Requirements deployRequirement;
    ComponentExternalPortEndpoints externalEndpoint;
    SubcomponentPortEndpoints internalEndpoint;
    ExternalReferenceEndpoints externalReference;
  };

  typedef sequence < AssemblyConnectionDescription > AssemblyConnectionDescriptions;
  
  // @@added
  enum LocalityKind {
    SameNodeAnyProcess,
    SameNodeSameProcess,
    SameNodeDifferentProcess,
    DifferentNode,
    DifferentProcess,
    NoConstraint
  };
  
  // @@added
  struct Locality {
    LocalityKind constraint;
    ::CORBA::ULongSeq constrainedInstanceRef; 
  };
    
  struct ComponentAssemblyDescription {
    SubcomponentInstantiationDescriptions instance;
    AssemblyConnectionDescriptions connection;
    AssemblyPropertyMappings externalProperty;
    // @@added
    // Localities localityConstraint;
  };

  typedef sequence < ComponentAssemblyDescription > ComponentAssemblyDescriptions;

  struct ComponentImplementationDescription {
    string label;
    string UUID;
    ComponentInterfaceDescription implements;
    ComponentAssemblyDescriptions assemblyImpl;
    MonolithicImplementationDescriptions monolithicImpl;
    Properties configProperty;
    Capabilities capability;
    ImplementationDependencies dependsOn;
    Properties infoProperty;
  };


  struct PackagedComponentImplementation {
    string name;
    ComponentImplementationDescription referencedImplementation;
  };


  typedef sequence < PackagedComponentImplementation > PackagedComponentImplementations;

  struct ComponentPackageDescription {
    string label;
    string UUID;
    ComponentInterfaceDescription realizes;
    Properties configProperty;
    PackagedComponentImplementations implementation;
    Properties infoProperty;
  };


  struct PackageConfiguration {
    string label;
    string UUID;
    ComponentPackageDescriptions basePackage;
    PackageConfigurations specializedConfig;
    Requirements selectRequirement;
    Properties configProperty;
    ComponentPackageReferences reference;
    // @@changed, delete previous
    //ComponentPackageReferences referencedPackage;
    // @@add
    ComponentPackageImports importedPackage;
  };


};

#endif /* PACKAGING_DATA_IDL */