(file) Return to CIMParameter.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

  1 mike  1.5 //%/////////////////////////////////////////////////////////////////////////////
  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           //
 20 mike  1.5 //==============================================================================
 21 mike  1.1 //
 22 mike  1.5 // Author: Mike Brasher (mbrasher@bmc.com)
 23 mike  1.1 //
 24 mike  1.5 // Modified By:
 25 bob   1.3 //
 26 mike  1.5 //%/////////////////////////////////////////////////////////////////////////////
 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           
179 bob   1.3     void print(std::ostream &o=std::cout) const
180 mike  1.1     {
181           	_checkRep();
182 bob   1.3 	_rep->print(o);
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           
327 bob   1.3     void print(std::ostream &o=std::cout) const
328 mike  1.1     {
329           	_checkRep();
330 bob   1.3 	_rep->print(o);
331 mike  1.1     }
332           
333               Boolean identical(const CIMConstParameter& x) const
334               {
335           	x._checkRep();
336           	_checkRep();
337           	return _rep->identical(x._rep);
338               }
339           
340               CIMParameter clone() const
341               {
342           	return CIMParameter(_rep->clone());
343               }
344           
345           private:
346           
347               void _checkRep() const
348               {
349           	if (!_rep)
350           	    throw UnitializedHandle();
351               }
352 mike  1.1 
353               CIMParameterRep* _rep;
354               friend class CIMParameter;
355           };
356           
357           PEGASUS_NAMESPACE_END
358           
359           #endif /* Pegasus_Parameter_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2