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

  1 mike  1.1 //BEGIN_LICENSE
  2           //
  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           //END_LICENSE
 21           //BEGIN_HISTORY
 22 mike  1.1 //
 23           // Author:
 24           //
 25           // $Log: CIMParameter.h,v $
 26 mike  1.2 // Revision 1.1  2001/02/18 18:39:06  mike
 27           // new
 28           //
 29 mike  1.1 // Revision 1.2  2001/02/18 03:56:01  mike
 30 mike  1.2 // Changed more class names (e.g., ConstClassDecl -> ConstCIMClass)
 31 mike  1.1 //
 32           // Revision 1.1  2001/02/16 02:07:06  mike
 33           // Renamed many classes and headers (using new CIM prefixes).
 34           //
 35           // Revision 1.2  2001/01/15 04:31:44  mike
 36           // worked on resolve scheme
 37           //
 38           // Revision 1.1.1.1  2001/01/14 19:53:02  mike
 39           // Pegasus import
 40           //
 41           //
 42           //END_HISTORY
 43           
 44           #ifndef Pegasus_Parameter_h
 45           #define Pegasus_Parameter_h
 46           
 47           #include <Pegasus/Common/Config.h>
 48           #include <Pegasus/Common/CIMParameterRep.h>
 49           
 50           PEGASUS_NAMESPACE_BEGIN
 51           
 52 mike  1.1 ////////////////////////////////////////////////////////////////////////////////
 53           //
 54           // CIMParameter
 55           //
 56           ////////////////////////////////////////////////////////////////////////////////
 57           
 58           class CIMConstParameter;
 59           
 60           class PEGASUS_COMMON_LINKAGE CIMParameter
 61           {
 62           public:
 63           
 64               CIMParameter() : _rep(0)
 65               {
 66           
 67               }
 68           
 69               CIMParameter(const CIMParameter& x)
 70               {
 71           	Inc(_rep = x._rep);
 72               }
 73 mike  1.1 
 74               CIMParameter& operator=(const CIMParameter& x)
 75               {
 76           	if (x._rep != _rep)
 77           	{
 78           	    Dec(_rep);
 79           	    Inc(_rep = x._rep);
 80           	}
 81           	return *this;
 82               }
 83           
 84               // Throws IllegalName if name argument not legal CIM identifier.
 85           
 86               CIMParameter(
 87           	const String& name, 
 88           	CIMType type,
 89           	Boolean isArray = false,
 90           	Uint32 arraySize = 0,
 91           	const String& referenceClassName = String::EMPTY)
 92               {
 93           	_rep = new CIMParameterRep(
 94 mike  1.1 	    name, type, isArray, arraySize, referenceClassName);
 95               }
 96           
 97               ~CIMParameter()
 98               {
 99           	Dec(_rep);
100               }
101           
102               const String& getName() const 
103               { 
104           	_checkRep();
105           	return _rep->getName(); 
106               }
107           
108               // Throws IllegalName if name argument not legal CIM identifier.
109           
110               void setName(const String& name)
111               {
112           	_checkRep();
113           	_rep->setName(name);
114               }
115 mike  1.1 
116               Boolean isArray() const
117               {
118           	_checkRep();
119           	return _rep->isArray();
120               }
121           
122               Uint32 getAraySize() const
123               {
124           	_checkRep();
125           	return _rep->getAraySize();
126               }
127           
128               const String& getReferenceClassName() const 
129               {
130           	_checkRep();
131           	return _rep->getReferenceClassName(); 
132               }
133           
134               CIMType getType() const 
135               { 
136 mike  1.1 	_checkRep();
137           	return _rep->getType();
138               }
139           
140               void setType(CIMType type);
141           
142               // Throws AlreadyExists.
143           
144               CIMParameter& addQualifier(const CIMQualifier& x)
145               {
146           	_checkRep();
147           	_rep->addQualifier(x);
148           	return *this;
149               }
150           
151               Uint32 findQualifier(const String& name)
152               {
153           	_checkRep();
154           	return _rep->findQualifier(name);
155               }
156           
157 mike  1.1     Uint32 findQualifier(const String& name) const
158               {
159           	_checkRep();
160           	return _rep->findQualifier(name);
161               }
162           
163               CIMQualifier getQualifier(Uint32 pos)
164               {
165           	_checkRep();
166           	return _rep->getQualifier(pos);
167               }
168           
169               CIMConstQualifier getQualifier(Uint32 pos) const
170               {
171           	_checkRep();
172           	return _rep->getQualifier(pos);
173               }
174           
175               Uint32 getQualifierCount() const
176               {
177           	_checkRep();
178 mike  1.1 	return _rep->getQualifierCount();
179               }
180           
181               void resolve(DeclContext* declContext, const String& nameSpace)
182               {
183           	_checkRep();
184           	_rep->resolve(declContext, nameSpace);
185               }
186           
187               operator int() const { return _rep != 0; }
188           
189               void toXml(Array<Sint8>& out) const
190               {
191           	_checkRep();
192           	_rep->toXml(out);
193               }
194           
195               void print() const
196               {
197           	_checkRep();
198           	_rep->print();
199 mike  1.1     }
200           
201               Boolean identical(const CIMConstParameter& x) const;
202           
203               CIMParameter clone() const
204               {
205           	return CIMParameter(_rep->clone());
206               }
207           
208           private:
209           
210               CIMParameter(CIMParameterRep* rep) : _rep(rep)
211               {
212               }
213           
214               void _checkRep() const
215               {
216           	if (!_rep)
217           	    throw UnitializedHandle();
218               }
219           
220 mike  1.1     CIMParameterRep* _rep;
221               friend class CIMConstParameter;
222           };
223           
224           ////////////////////////////////////////////////////////////////////////////////
225           //
226           // CIMConstParameter
227           //
228           ////////////////////////////////////////////////////////////////////////////////
229           
230           class PEGASUS_COMMON_LINKAGE CIMConstParameter
231           {
232           public:
233           
234               CIMConstParameter() : _rep(0)
235               {
236           
237               }
238           
239               CIMConstParameter(const CIMConstParameter& x)
240               {
241 mike  1.1 	Inc(_rep = x._rep);
242               }
243           
244               CIMConstParameter(const CIMParameter& x)
245               {
246           	Inc(_rep = x._rep);
247               }
248           
249               CIMConstParameter& operator=(const CIMConstParameter& x)
250               {
251           	if (x._rep != _rep)
252           	{
253           	    Dec(_rep);
254           	    Inc(_rep = x._rep);
255           	}
256           	return *this;
257               }
258           
259               CIMConstParameter& operator=(const CIMParameter& x)
260               {
261           	if (x._rep != _rep)
262 mike  1.1 	{
263           	    Dec(_rep);
264           	    Inc(_rep = x._rep);
265           	}
266           	return *this;
267               }
268           
269               // Throws IllegalName if name argument not legal CIM identifier.
270           
271               CIMConstParameter(
272           	const String& name, 
273           	CIMType type,
274           	Boolean isArray = false,
275           	Uint32 arraySize = 0,
276           	const String& referenceClassName = String::EMPTY)
277               {
278           	_rep = new CIMParameterRep(
279           	    name, type, isArray, arraySize, referenceClassName);
280               }
281           
282               ~CIMConstParameter()
283 mike  1.1     {
284           	Dec(_rep);
285               }
286           
287               const String& getName() const 
288               { 
289           	_checkRep();
290           	return _rep->getName(); 
291               }
292           
293               Boolean isArray() const
294               {
295           	_checkRep();
296           	return _rep->isArray();
297               }
298           
299               Uint32 getAraySize() const
300               {
301           	_checkRep();
302           	return _rep->getAraySize();
303               }
304 mike  1.1 
305               const String& getReferenceClassName() const 
306               {
307           	_checkRep();
308           	return _rep->getReferenceClassName(); 
309               }
310           
311               CIMType getType() const 
312               { 
313           	_checkRep();
314           	return _rep->getType();
315               }
316           
317               Uint32 findQualifier(const String& name) const
318               {
319           	_checkRep();
320           	return _rep->findQualifier(name);
321               }
322           
323               CIMConstQualifier getQualifier(Uint32 pos) const
324               {
325 mike  1.1 	_checkRep();
326           	return _rep->getQualifier(pos);
327               }
328           
329               Uint32 getQualifierCount() const
330               {
331           	_checkRep();
332           	return _rep->getQualifierCount();
333               }
334           
335               operator int() const { return _rep != 0; }
336           
337               void toXml(Array<Sint8>& out) const
338               {
339           	_checkRep();
340           	_rep->toXml(out);
341               }
342           
343               void print() const
344               {
345           	_checkRep();
346 mike  1.1 	_rep->print();
347               }
348           
349               Boolean identical(const CIMConstParameter& x) const
350               {
351           	x._checkRep();
352           	_checkRep();
353           	return _rep->identical(x._rep);
354               }
355           
356               CIMParameter clone() const
357               {
358           	return CIMParameter(_rep->clone());
359               }
360           
361           private:
362           
363               void _checkRep() const
364               {
365           	if (!_rep)
366           	    throw UnitializedHandle();
367 mike  1.1     }
368           
369               CIMParameterRep* _rep;
370               friend class CIMParameter;
371           };
372           
373           PEGASUS_NAMESPACE_END
374           
375           #endif /* Pegasus_Parameter_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2