2 mike 1.1 //
3 // Copyright (c) 2000 The Open Group, BMC Software, Tivoli Systems, IBM
4 //
5 // Permission is hereby granted, free of charge, to any person obtaining a
6 // copy of this software and associated documentation files (the "Software"),
7 // to deal in the Software without restriction, including without limitation
8 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 // and/or sell copies of the Software, and to permit persons to whom the
10 // Software is furnished to do so, subject to the following conditions:
11 //
12 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
15 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
17 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
18 // DEALINGS IN THE SOFTWARE.
19 //
|
27 mike 1.1
28 #ifndef Pegasus_Parameter_h
29 #define Pegasus_Parameter_h
30
31 #include <Pegasus/Common/Config.h>
32 #include <Pegasus/Common/CIMParameterRep.h>
33
34 PEGASUS_NAMESPACE_BEGIN
35
36 ////////////////////////////////////////////////////////////////////////////////
37 //
38 // CIMParameter
39 //
40 ////////////////////////////////////////////////////////////////////////////////
41
42 class CIMConstParameter;
43
44 class PEGASUS_COMMON_LINKAGE CIMParameter
45 {
46 public:
47
48 mike 1.1 CIMParameter() : _rep(0)
49 {
50
51 }
52
53 CIMParameter(const CIMParameter& x)
54 {
55 Inc(_rep = x._rep);
56 }
57
58 CIMParameter& operator=(const CIMParameter& x)
59 {
60 if (x._rep != _rep)
61 {
62 Dec(_rep);
63 Inc(_rep = x._rep);
64 }
65 return *this;
66 }
67
68 // Throws IllegalName if name argument not legal CIM identifier.
69 mike 1.1
70 CIMParameter(
71 const String& name,
72 CIMType type,
73 Boolean isArray = false,
74 Uint32 arraySize = 0,
75 const String& referenceClassName = String::EMPTY)
76 {
77 _rep = new CIMParameterRep(
78 name, type, isArray, arraySize, referenceClassName);
79 }
80
81 ~CIMParameter()
82 {
83 Dec(_rep);
84 }
85
86 const String& getName() const
87 {
88 _checkRep();
89 return _rep->getName();
90 mike 1.1 }
91
92 // Throws IllegalName if name argument not legal CIM identifier.
93
94 void setName(const String& name)
95 {
96 _checkRep();
97 _rep->setName(name);
98 }
99
100 Boolean isArray() const
101 {
102 _checkRep();
103 return _rep->isArray();
104 }
105
106 Uint32 getAraySize() const
107 {
108 _checkRep();
109 return _rep->getAraySize();
110 }
111 mike 1.1
112 const String& getReferenceClassName() const
113 {
114 _checkRep();
115 return _rep->getReferenceClassName();
116 }
117
118 CIMType getType() const
119 {
120 _checkRep();
121 return _rep->getType();
122 }
123
124 void setType(CIMType type);
125
126 // Throws AlreadyExists.
127
128 CIMParameter& addQualifier(const CIMQualifier& x)
129 {
130 _checkRep();
131 _rep->addQualifier(x);
132 mike 1.1 return *this;
133 }
134
135 Uint32 findQualifier(const String& name)
136 {
137 _checkRep();
138 return _rep->findQualifier(name);
139 }
140
141 Uint32 findQualifier(const String& name) const
142 {
143 _checkRep();
144 return _rep->findQualifier(name);
145 }
146
147 CIMQualifier getQualifier(Uint32 pos)
148 {
149 _checkRep();
150 return _rep->getQualifier(pos);
151 }
152
153 mike 1.1 CIMConstQualifier getQualifier(Uint32 pos) const
154 {
155 _checkRep();
156 return _rep->getQualifier(pos);
157 }
158
159 Uint32 getQualifierCount() const
160 {
161 _checkRep();
162 return _rep->getQualifierCount();
163 }
164
165 void resolve(DeclContext* declContext, const String& nameSpace)
166 {
167 _checkRep();
168 _rep->resolve(declContext, nameSpace);
169 }
170
171 operator int() const { return _rep != 0; }
172
173 void toXml(Array<Sint8>& out) const
174 mike 1.1 {
175 _checkRep();
176 _rep->toXml(out);
177 }
178
|
183 mike 1.1 }
184
185 Boolean identical(const CIMConstParameter& x) const;
186
187 CIMParameter clone() const
188 {
189 return CIMParameter(_rep->clone());
190 }
191
192 private:
193
194 CIMParameter(CIMParameterRep* rep) : _rep(rep)
195 {
196 }
197
198 void _checkRep() const
199 {
200 if (!_rep)
201 throw UnitializedHandle();
202 }
203
204 mike 1.1 CIMParameterRep* _rep;
205 friend class CIMConstParameter;
206 };
207
208 ////////////////////////////////////////////////////////////////////////////////
209 //
210 // CIMConstParameter
211 //
212 ////////////////////////////////////////////////////////////////////////////////
213
214 class PEGASUS_COMMON_LINKAGE CIMConstParameter
215 {
216 public:
217
218 CIMConstParameter() : _rep(0)
219 {
220
221 }
222
223 CIMConstParameter(const CIMConstParameter& x)
224 {
225 mike 1.1 Inc(_rep = x._rep);
226 }
227
228 CIMConstParameter(const CIMParameter& x)
229 {
230 Inc(_rep = x._rep);
231 }
232
233 CIMConstParameter& operator=(const CIMConstParameter& x)
234 {
235 if (x._rep != _rep)
236 {
237 Dec(_rep);
238 Inc(_rep = x._rep);
239 }
240 return *this;
241 }
242
243 CIMConstParameter& operator=(const CIMParameter& x)
244 {
245 if (x._rep != _rep)
246 mike 1.1 {
247 Dec(_rep);
248 Inc(_rep = x._rep);
249 }
250 return *this;
251 }
252
253 // Throws IllegalName if name argument not legal CIM identifier.
254
255 CIMConstParameter(
256 const String& name,
257 CIMType type,
258 Boolean isArray = false,
259 Uint32 arraySize = 0,
260 const String& referenceClassName = String::EMPTY)
261 {
262 _rep = new CIMParameterRep(
263 name, type, isArray, arraySize, referenceClassName);
264 }
265
266 ~CIMConstParameter()
267 mike 1.1 {
268 Dec(_rep);
269 }
270
271 const String& getName() const
272 {
273 _checkRep();
274 return _rep->getName();
275 }
276
277 Boolean isArray() const
278 {
279 _checkRep();
280 return _rep->isArray();
281 }
282
283 Uint32 getAraySize() const
284 {
285 _checkRep();
286 return _rep->getAraySize();
287 }
288 mike 1.1
289 const String& getReferenceClassName() const
290 {
291 _checkRep();
292 return _rep->getReferenceClassName();
293 }
294
295 CIMType getType() const
296 {
297 _checkRep();
298 return _rep->getType();
299 }
300
301 Uint32 findQualifier(const String& name) const
302 {
303 _checkRep();
304 return _rep->findQualifier(name);
305 }
306
307 CIMConstQualifier getQualifier(Uint32 pos) const
308 {
309 mike 1.1 _checkRep();
310 return _rep->getQualifier(pos);
311 }
312
313 Uint32 getQualifierCount() const
314 {
315 _checkRep();
316 return _rep->getQualifierCount();
317 }
318
319 operator int() const { return _rep != 0; }
320
321 void toXml(Array<Sint8>& out) const
322 {
323 _checkRep();
324 _rep->toXml(out);
325 }
326
|