summaryrefslogtreecommitdiff
path: root/TAO/CIAO/DAnCE/Config_Handlers/Plan_Handler.h
blob: 3983e4f1faf2ff7844d5b26ddde42f0f1fd6a73e (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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
//==================================================================
/**
 *  @file  Plan_Handler.h
 *
 *  $Id$
 *
 *  @author Jaiganesh Balasubramanian <jai@dre.vanderbilt.edu>
 */
//=====================================================================
#ifndef PLAN_HANDLER_H
#define PLAN_HANDLER_H
#include /**/ "ace/pre.h"

#include "DeploymentC.h"
#include "Basic_Handler.h"
#include "Config_Handler_export.h"
#include "ace/SString.h"
#include "ace/Hash_Map_Manager.h"
#include "ace/Null_Mutex.h"

#if !defined (ACE_LACKS_PRAGMA_ONCE)
#pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */

#include "ace/Auto_Ptr.h"
#include "ace/Log_Msg.h"
#include "ace/OS_main.h"
#include "tao/Exception.h"
#include "XercesString.h"
#include <xercesc/util/XMLUniDefs.hpp>
#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOM.hpp>
#include <xercesc/util/XMLURL.hpp>
#include <xercesc/util/XMLUri.hpp>

using Config_Handler::XStr;
using xercesc::XMLUni;
using xercesc::XMLUri;
using xercesc::XMLURL;
using xercesc::XMLString;
using xercesc::XMLException;
using xercesc::DOMException;
using xercesc::DOMBuilder;
using xercesc::DOMImplementationRegistry;
using xercesc::DOMImplementationLS;
using xercesc::DOMImplementation;
using xercesc::DOMInputSource;
using xercesc::DOMText;
using xercesc::DOMNamedNodeMap;
using xercesc::DOMLocator;
using xercesc::DOMError;
using xercesc::DOMDocument;
using xercesc::DOMDocumentTraversal;
using xercesc::DOMNodeIterator;
using xercesc::DOMNode;
using xercesc::DOMNodeFilter;
using xercesc::DOMNamedNodeMap;

BEGIN_DEPLOYMENT_NAMESPACE

/**
 * @class Plan_Handler
 *
 * @brief Handler class for <DeploymentPlan> type
 *
 */

class Config_Handler_Export Plan_Handler: public Basic_Handler
{
public:

  /// constructor
  Plan_Handler (DOMDocument* doc, unsigned long filter_)
    : Basic_Handler (doc, filter_) { }

  /// constructor
  Plan_Handler (DOMNodeIterator* iter, bool release = false)
    : Basic_Handler (iter, release) { }

  /// constructor
  Plan_Handler (DOMDocument* doc, DOMNodeIterator* iter, bool release = false)
    : Basic_Handler (doc, iter, release) { }

  /// Process the plan type
  void process_plan (Deployment::DeploymentPlan& plan);

  /// process cid
  void process_ccd (DOMNodeIterator* iter,
                    Deployment::ComponentInterfaceDescription& cid);

  /// process pspr
  void process_pspr (DOMNodeIterator* iter,
                     Deployment::PlanSubcomponentPropertyReference& pspr);

  /// process pspe
  void process_pspe (DOMNodeIterator* iter,
                     Deployment::PlanSubcomponentPortEndpoint& pspe);

  /// process add
  void process_add (DOMNodeIterator* iter,
                    Deployment::ArtifactDeploymentDescription& add);

  /// process con
  void process_pcd (DOMNodeIterator* iter,
                    Deployment::PlanConnectionDescription& con);

  /// process external property
  void process_ppm (DOMNodeIterator* iter,
                    Deployment::PlanPropertyMapping& ppm);

  /// process idd
  void process_idd (DOMNodeIterator* iter,
                    Deployment::InstanceDeploymentDescription& idd);

  /// process mdd
  void process_mdd (DOMNodeIterator* iter,
                    Deployment::MonolithicDeploymentDescription& mdd);

  /// process rdd
  void process_rdd (DOMNodeIterator* iter,
                    Deployment::ResourceDeploymentDescription& rdd);

  /// process crdd
  void process_crdd (DOMNodeIterator* iter,
                     Deployment::ConnectionResourceDeploymentDescription& crdd);
  /// process irdd
  void process_irdd (DOMNodeIterator* iter,
                     Deployment::InstanceResourceDeploymentDescription &irdd);

  /// process the add name
  void process_add_name (const XMLCh* name,
                         Deployment::ArtifactDeploymentDescription& add);

  /// process the pspr property name
  void process_pspr_prop_name (const XMLCh* name,
                               Deployment::PlanSubcomponentPropertyReference& pspr);

  /// process the pspe port name
  void process_pspe_port_name (const XMLCh* name,
                               Deployment::PlanSubcomponentPortEndpoint& pspe);

  /// process the pspe provider
  void process_pspe_provider (const XMLCh* value,
                              Deployment::PlanSubcomponentPortEndpoint& pspe);

  /// process the idd name
  void process_idd_name (const XMLCh* name,
                         Deployment::InstanceDeploymentDescription& idd);

  /// process the ppm  name
  void process_ppm_name (const XMLCh* name,
                         Deployment::PlanPropertyMapping& ppm);

  /// process the ppm external name
  void process_ppm_ext_name (const XMLCh* name,
                             Deployment::PlanPropertyMapping& ppm);

  /// process the idd node
  void process_idd_node (const XMLCh* node,
                         Deployment::InstanceDeploymentDescription& idd);

  /// process the idd source
  void process_idd_source (const XMLCh* source,
                           Deployment::InstanceDeploymentDescription& idd);

  /// process the add location
  void process_add_location (const XMLCh* location,
                             Deployment::ArtifactDeploymentDescription& add);

  /// process the add source
  void process_add_source (const XMLCh* source,
                           Deployment::ArtifactDeploymentDescription& add);

  /// process the add node
  void process_add_node (const XMLCh* node,
                         Deployment::ArtifactDeploymentDescription& add);

  /// process the mdd source
  void process_mdd_source (const XMLCh* source,
                           Deployment::MonolithicDeploymentDescription& mdd);

  /// process the ppm source
  void process_ppm_source (const XMLCh* source,
                           Deployment::PlanPropertyMapping& ppm);

  /// process the pcd source
  void process_pcd_source (const XMLCh* source,
                           Deployment::PlanConnectionDescription& pcd);

  /// process the pcd name
  void process_pcd_name (const XMLCh* name,
                         Deployment::PlanConnectionDescription& pcd);

  /// process the add node
  void process_mdd_name (const XMLCh* name,
                         Deployment::MonolithicDeploymentDescription& mdd);

  /// process the rdd req name
  void process_rdd_req_name (const XMLCh* name,
                             Deployment::ResourceDeploymentDescription& rdd);

  /// process the rdd res name
  void process_rdd_res_name (const XMLCh* name,
                             Deployment::ResourceDeploymentDescription& rdd);

  /// process the irdd res name
  void process_irdd_res_name (const XMLCh* name,
                              Deployment::InstanceResourceDeploymentDescription &irdd);

  /// process the crdd res name
  void process_crdd_res_name (const XMLCh* name,
                              Deployment::ConnectionResourceDeploymentDescription& crdd);

  /// process the crdd req name
  void process_crdd_req_name (const XMLCh* name,
                              Deployment::ConnectionResourceDeploymentDescription& crdd);

  /// process the crdd target name
  void process_crdd_target_name (const XMLCh* name,
                                 Deployment::ConnectionResourceDeploymentDescription& crdd);

  /// process the irdd req name
  void process_irdd_req_name (const XMLCh* name,
                              Deployment::InstanceResourceDeploymentDescription &irdd);

  /// process the irdd res usage
  void process_irdd_res_usage (const XMLCh* name,
                               Deployment::InstanceResourceDeploymentDescription &irdd);

  /// process references
  void process_refs (DOMNamedNodeMap* named_node_map);

  /// update mdd refs
  void update_mdd_refs (Deployment::DeploymentPlan& plan);

  /// update idd refs
  void update_idd_refs (Deployment::DeploymentPlan& plan);

  /// update pspe refs
  void update_pspe_refs (Deployment::DeploymentPlan& plan);

  /// update pspr refs
  void update_pspr_refs (Deployment::DeploymentPlan& plan);

};

END_DEPLOYMENT_NAMESPACE

#include /**/ "ace/post.h"

#endif /* PLAN_HANDLER_H */