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
|
//==================================================================
/**
* @file Process_Basic_Type.i
*
* $Id$
*
* @author Emre Turkay <turkaye@dre.vanderbilt.edu>
*/
//=====================================================================
/*
* Process string values
*/
using xercesc::DOMNode;
using xercesc::XMLString;
using xercesc::DOMText;
inline bool
process_string (DOMNodeIterator* iter,
const XStr& node_name, const char* name,
TAO_String_Manager& var)
{
bool result = (node_name == XStr(ACE_TEXT (name)));
if (result == true)
{
DOMNode* node = iter->nextNode();
const XMLCh* text = ACE_reinterpret_cast(DOMText*, node)->getNodeValue ();
if (text)
var = XMLString::transcode (text);
}
return result;
}
/*
* Process string sequences
*/
inline bool
process_string_seq (DOMNodeIterator* iter,
const XStr& node_name, const char* name,
CORBA::StringSeq& seq)
{
bool result = (node_name == XStr (ACE_TEXT (name)));
if (result == true)
{
DOMNode* node = iter->nextNode ();
const XMLCh* text = ACE_reinterpret_cast
(DOMText*, node)->getNodeValue ();
if (text)
{
CORBA::ULong i (seq.length ());
seq.length (i + 1);
seq[i] = XMLString::transcode (text);
}
}
return result;
}
inline bool
process_ulong (DOMNodeIterator* iter,
const XStr& node_name, const char* name,
CORBA::ULong& var)
{
bool result = (node_name == XStr (ACE_TEXT (name)));
if (result == true)
{
DOMNode* node = iter->nextNode ();
const XMLCh* text = ACE_reinterpret_cast
(DOMText*, node)->getNodeValue ();
if (text)
{
CORBA::String_var temp = XMLString::transcode (text);
var = ACE_static_cast (CORBA::ULong, ACE_OS::strtol (temp.in (),
0, 10));
}
}
return result;
}
inline bool
process_boolean (DOMNodeIterator* iter,
const XStr& node_name, const char* name,
CORBA::Boolean& var)
{
bool result = (node_name == XStr (ACE_TEXT (name)));
if (result == true)
{
DOMNode* node = iter->nextNode ();
const XMLCh* text = ACE_reinterpret_cast
(DOMText*, node)->getNodeValue ();
if (text)
{
CORBA::String_var temp = XMLString::transcode (text);
var = ACE_static_cast (CORBA::Boolean, ACE_OS::strtol (temp.in (),
0, 10));
}
}
return result;
}
|