1 mike 1.9 //%/////////////////////////////////////////////////////////////////////////////
2 //
|
3 kumpf 1.15 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
4 // The Open Group, Tivoli Systems
|
5 mike 1.9 //
6 // Permission is hereby granted, free of charge, to any person obtaining a copy
|
7 kumpf 1.15 // of this software and associated documentation files (the "Software"), to
8 // deal in the Software without restriction, including without limitation the
9 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
10 mike 1.9 // sell copies of the Software, and to permit persons to whom the Software is
11 // furnished to do so, subject to the following conditions:
12 //
|
13 kumpf 1.15 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
14 mike 1.9 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
15 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
16 kumpf 1.15 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
17 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
19 mike 1.9 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 //
22 //==============================================================================
23 //
24 // Author: Mike Brasher (mbrasher@bmc.com)
25 //
|
26 kumpf 1.10 // Modified By: Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
|
27 kumpf 1.16 // Carol Ann Krug Graves, Hewlett-Packard Company
28 // (carolann_graves@hp.com)
|
29 mike 1.9 //
30 //%/////////////////////////////////////////////////////////////////////////////
31
32 #include "CIMQualifier.h"
|
33 kumpf 1.10 #include "CIMQualifierRep.h"
|
34 mike 1.9
35 PEGASUS_NAMESPACE_BEGIN
36
37 #define PEGASUS_ARRAY_T CIMQualifier
38 # include "ArrayImpl.h"
39 #undef PEGASUS_ARRAY_T
40
|
41 kumpf 1.10 ////////////////////////////////////////////////////////////////////////////////
42 //
43 // CIMQualifier
44 //
45 ////////////////////////////////////////////////////////////////////////////////
46
47 CIMQualifier::CIMQualifier()
48 : _rep(0)
49 {
50 }
51
52 CIMQualifier::CIMQualifier(const CIMQualifier& x)
53 {
54 Inc(_rep = x._rep);
55 }
56
57 CIMQualifier::CIMQualifier(
|
58 kumpf 1.17 const CIMName& name,
|
59 kumpf 1.10 const CIMValue& value,
60 Uint32 flavor,
61 Boolean propagated)
62 {
63 _rep = new CIMQualifierRep(name, value, flavor, propagated);
64 }
65
66 CIMQualifier::CIMQualifier(CIMQualifierRep* rep)
67 : _rep(rep)
68 {
69 }
70
71 CIMQualifier::~CIMQualifier()
72 {
73 Dec(_rep);
74 }
75
76 CIMQualifier& CIMQualifier::operator=(const CIMQualifier& x)
77 {
78 if (x._rep != _rep)
79 {
80 kumpf 1.10 Dec(_rep);
81 Inc(_rep = x._rep);
82 }
83
84 return *this;
85 }
86
|
87 kumpf 1.17 const CIMName& CIMQualifier::getName() const
|
88 kumpf 1.10 {
89 _checkRep();
90 return _rep->getName();
91 }
92
|
93 kumpf 1.17 void CIMQualifier::setName(const CIMName& name)
|
94 kumpf 1.10 {
95 _checkRep();
96 _rep->setName(name);
97 }
98
99 CIMType CIMQualifier::getType() const
100 {
101 _checkRep();
102 return _rep->getType();
103 }
104
105 Boolean CIMQualifier::isArray() const
106 {
107 _checkRep();
108 return _rep->isArray();
109 }
110
111 const CIMValue& CIMQualifier::getValue() const
112 {
113 _checkRep();
114 return _rep->getValue();
115 kumpf 1.10 }
116
117 void CIMQualifier::setValue(const CIMValue& value)
118 {
119 _checkRep();
120 _rep->setValue(value);
121 }
122
123 void CIMQualifier::setFlavor(Uint32 flavor)
124 {
125 _checkRep();
126 _rep->setFlavor(flavor);
127 }
128
129 void CIMQualifier::unsetFlavor(Uint32 flavor)
130 {
131 _checkRep();
132 _rep->unsetFlavor(flavor);
133 }
134
135 Uint32 CIMQualifier::getFlavor() const
136 kumpf 1.10 {
137 _checkRep();
138 return _rep->getFlavor();
139 }
140
141 Boolean CIMQualifier::isFlavor(Uint32 flavor) const
142 {
143 return _rep->isFlavor(flavor);
144 }
145
146 const Uint32 CIMQualifier::getPropagated() const
147 {
148 _checkRep();
149 return _rep->getPropagated();
150 }
151
152 void CIMQualifier::setPropagated(Boolean propagated)
153 {
154 _checkRep();
155 _rep->setPropagated(propagated);
156 }
157 kumpf 1.10
|
158 kumpf 1.12 Boolean CIMQualifier::isNull() const
|
159 kumpf 1.10 {
|
160 kumpf 1.12 return (_rep == 0)? true : false;
|
161 kumpf 1.10 }
162
|
163 mike 1.9 Boolean CIMQualifier::identical(const CIMConstQualifier& x) const
164 {
165 x._checkRep();
166 _checkRep();
167 return _rep->identical(x._rep);
|
168 kumpf 1.10 }
169
170 CIMQualifier CIMQualifier::clone() const
171 {
172 return CIMQualifier(_rep->clone());
173 }
174
175 void CIMQualifier::_checkRep() const
176 {
177 if (!_rep)
|
178 kumpf 1.11 ThrowUninitializedHandle();
|
179 kumpf 1.10 }
180
181
182 ////////////////////////////////////////////////////////////////////////////////
183 //
184 // CIMConstQualifier
185 //
186 ////////////////////////////////////////////////////////////////////////////////
187
188 CIMConstQualifier::CIMConstQualifier()
189 : _rep(0)
190 {
191 }
192
193 CIMConstQualifier::CIMConstQualifier(const CIMConstQualifier& x)
194 {
195 Inc(_rep = x._rep);
196 }
197
198 CIMConstQualifier::CIMConstQualifier(const CIMQualifier& x)
199 {
200 kumpf 1.10 Inc(_rep = x._rep);
201 }
202
203 CIMConstQualifier::CIMConstQualifier(
|
204 kumpf 1.17 const CIMName& name,
|
205 kumpf 1.10 const CIMValue& value,
206 Uint32 flavor,
207 Boolean propagated)
208 {
209 _rep = new CIMQualifierRep(name, value, flavor, propagated);
210 }
211
212 CIMConstQualifier::~CIMConstQualifier()
213 {
214 Dec(_rep);
215 }
216
217 CIMConstQualifier& CIMConstQualifier::operator=(const CIMConstQualifier& x)
218 {
219 if (x._rep != _rep)
220 {
221 Dec(_rep);
222 Inc(_rep = x._rep);
223 }
224
225 return *this;
226 kumpf 1.10 }
227
228 CIMConstQualifier& CIMConstQualifier::operator=(const CIMQualifier& x)
229 {
230 if (x._rep != _rep)
231 {
232 Dec(_rep);
233 Inc(_rep = x._rep);
234 }
235
236 return *this;
237 }
238
|
239 kumpf 1.17 const CIMName& CIMConstQualifier::getName() const
|
240 kumpf 1.10 {
241 _checkRep();
242 return _rep->getName();
243 }
244
245 CIMType CIMConstQualifier::getType() const
246 {
247 _checkRep();
248 return _rep->getType();
249 }
250
251 Boolean CIMConstQualifier::isArray() const
252 {
253 _checkRep();
254 return _rep->isArray();
255 }
256
257 const CIMValue& CIMConstQualifier::getValue() const
258 {
259 _checkRep();
260 return _rep->getValue();
261 kumpf 1.10 }
262
263 const Uint32 CIMConstQualifier::getFlavor() const
264 {
265 _checkRep();
266 return _rep->getFlavor();
267 }
268
269 Boolean CIMConstQualifier::isFlavor(Uint32 flavor) const
270 {
271 return ((getFlavor() & flavor) !=0);
272 }
273
274 Boolean CIMConstQualifier::isFlavorToSubclass() const
275 {
276 return ((getFlavor() & CIMFlavor::TOSUBCLASS) != 0);
277 }
278
279 Boolean CIMConstQualifier::isFlavorToInstance() const
280 {
281 return ((getFlavor() & CIMFlavor::TOINSTANCE) != 0);
282 kumpf 1.10 }
283
284 Boolean CIMConstQualifier::isFlavorOverridable() const
285 {
286 return ((getFlavor() & CIMFlavor::OVERRIDABLE) != 0);
287 }
288
289 const Uint32 CIMConstQualifier::getPropagated() const
290 {
291 _checkRep();
292 return _rep->getPropagated();
293 }
294
|
295 kumpf 1.12 Boolean CIMConstQualifier::isNull() const
|
296 kumpf 1.10 {
|
297 kumpf 1.12 return (_rep == 0)? true : false;
|
298 kumpf 1.10 }
299
300 Boolean CIMConstQualifier::identical(const CIMConstQualifier& x) const
301 {
302 x._checkRep();
303 _checkRep();
304 return _rep->identical(x._rep);
305 }
306
307 CIMQualifier CIMConstQualifier::clone() const
308 {
309 return CIMQualifier(_rep->clone());
310 }
311
312 void CIMConstQualifier::_checkRep() const
313 {
314 if (!_rep)
|
315 kumpf 1.11 ThrowUninitializedHandle();
|
316 mike 1.9 }
317
318 PEGASUS_NAMESPACE_END
|