blob: 6772556ef0208540eefa19599b5054dce7059e43 (
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
|
// file : xsde/cxx/qname.ixx
// author : Boris Kolpackov <boris@codesynthesis.com>
// copyright : Copyright (c) 2005-2009 Code Synthesis Tools CC
// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
#include <string.h> // strcmp
namespace xsde
{
namespace cxx
{
// c-tors, d-tor and swap
//
inline qname::
~qname ()
{
delete[] prefix_;
delete[] name_;
}
inline qname::
qname ()
: prefix_ (0), name_ (0)
{
}
inline qname::
qname (char* n)
: prefix_ (0), name_ (n)
{
}
inline qname::
qname (char* p, char* n)
: prefix_ (p), name_ (n)
{
}
inline void qname::
swap (qname& x)
{
char* p = prefix_;
char* n = name_;
prefix_ = x.prefix_;
name_ = x.name_;
x.prefix_ = p;
x.name_ = n;
}
// preix
//
inline char* qname::
prefix ()
{
return prefix_;
}
inline const char* qname::
prefix () const
{
return prefix_;
}
inline void qname::
prefix (char* prefix)
{
delete[] prefix_;
prefix_ = prefix;
}
inline char* qname::
prefix_detach ()
{
char* r = prefix_;
prefix_ = 0;
return r;
}
// name
//
inline char* qname::
name ()
{
return name_;
}
inline const char* qname::
name () const
{
return name_;
}
inline void qname::
name (char* name)
{
delete[] name_;
name_ = name;
}
inline char* qname::
name_detach ()
{
char* r = name_;
name_ = 0;
return r;
}
//
//
inline bool
operator== (const qname& x, const qname& y)
{
return strcmp (x.name (), y.name ()) == 0 &&
strcmp (x.prefix (), y.prefix ()) == 0;
}
inline bool
operator!= (const qname& x, const qname& y)
{
return !(x == y);
}
}
}
|