blob: a849aa90f000665ce37f1e0a28a75f5409a575a8 (
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
|
// $Id$
#include "PCD_Handler.h"
#include "Req_Handler.h"
#include "CEPE_Handler.h"
#include "PSPE_Handler.h"
#include "ERE_Handler.h"
#include "Basic_Deployment_Data.hpp"
#include "ciao/Deployment_DataC.h"
namespace CIAO
{
namespace Config_Handlers
{
PCD_Handler::PCD_Handler (void)
{
}
PCD_Handler::~PCD_Handler (void)
{
}
///This method takes a <Deployment::PlanConnectionDescription>
///and maps the values from the passed in XSC
///PlanConnectionDescription to its members.
void PCD_Handler::get_PlanConnectionDescription (
Deployment::PlanConnectionDescription& toconfig,
PlanConnectionDescription& desc)
{
toconfig.name = CORBA::string_dup (desc.name ().c_str ());
//Source is mapped to a string in the schema and a sequence
//in the IDL. We just assign the source string from the xml
//to the first position in the IDL type's sequence. We
//make sure that the source is present before lengthening
//the sequence.
if (desc.source_p ())
{
toconfig.source.length (toconfig.source.length () + 1);
toconfig.source[toconfig.source.length () - 1] =
CORBA::string_dup (desc.source ().c_str ());
}
if (desc.deployRequirement_p ())
{
//Create the handler for the requirements.
Requirement_Handler reqhandler;
//Increase the sequence length and delgate
//the Requirement to the Req_Handler.
toconfig.deployRequirement.length (
toconfig.deployRequirement.length () + 1);
reqhandler.get_Requirement (
toconfig.deployRequirement[toconfig.deployRequirement.length () - 1],
desc.deployRequirement ());
}
//Create the ComponentExternalPortEndpoint handler.
CEPE_Handler cepehandler;
//Iterate through and configure each port in the
//externalEndpoint sequence.
for (PlanConnectionDescription::externalEndpoint_iterator
port (desc.begin_externalEndpoint ());
port != desc.end_externalEndpoint ();
++port)
{
toconfig.externalEndpoint.length (
toconfig.externalEndpoint.length () + 1);
cepehandler.get_ComponentExternalPortEndpoint (
toconfig.externalEndpoint [toconfig.externalEndpoint.length () - 1],
*port);
}
//Configure the PlanSubcomponentPortEndpoint's.
PSPE_Handler pspehandler;
for (PlanConnectionDescription::internalEndpoint_iterator
ipoint (desc.begin_internalEndpoint ());
ipoint != desc.end_internalEndpoint ();
++ipoint)
{
toconfig.internalEndpoint.length (
toconfig.internalEndpoint.length () + 1);
pspehandler.get_PlanSubcomponentPortEndpoint (
toconfig.internalEndpoint [toconfig.internalEndpoint.length () - 1],
*ipoint);
}
//Configure the ExternalReferenceEndpoint's.
ERE_Handler erehandler;
for (PlanConnectionDescription::externalReference_iterator
ipoint (desc.begin_externalReference ());
ipoint != desc.end_externalReference ();
++ipoint)
{
toconfig.externalReference.length (
toconfig.externalReference.length () + 1);
erehandler.get_ExternalReferenceEndpoint (
toconfig.externalReference [toconfig.externalReference.length () - 1],
*ipoint);
}
}
}
}
|