(file) Return to CIMQualifier.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: CIMQualifier.h,v $
 26           // Revision 1.2  2001/02/18 03:56:01  mike
 27           // Changed more class names (e.g., ConstClassDecl -> CIMConstClass)
 28           //
 29           // Revision 1.1  2001/02/16 02:07:06  mike
 30           // Renamed many classes and headers (using new CIM prefixes).
 31           //
 32           // Revision 1.4  2001/01/30 23:39:00  karl
 33           // Add doc++ Documentation to header files
 34           //
 35           // Revision 1.3  2001/01/23 01:25:35  mike
 36           // Reworked resolve scheme.
 37           //
 38           // Revision 1.2  2001/01/15 04:31:44  mike
 39           // worked on resolve scheme
 40           //
 41           // Revision 1.1.1.1  2001/01/14 19:53:06  mike
 42           // Pegasus import
 43 mike  1.1 //
 44           //
 45           //END_HISTORY
 46           
 47           /*
 48            CIMQualifier.h - Defines the CIM qualifiers class.
 49           	This class represents a CIM qualifiers. It is almost identical to
 50           	CIMQualifierDecl except that it has no scope member.
 51           
 52           */
 53           
 54           #ifndef Pegasus_Qualifier_h
 55           #define Pegasus_Qualifier_h
 56           
 57           #include <Pegasus/Common/Config.h>
 58           #include <Pegasus/Common/CIMQualifierRep.h>
 59           
 60           PEGASUS_NAMESPACE_BEGIN
 61           
 62           ////////////////////////////////////////////////////////////////////////////////
 63           //
 64 mike  1.1 // CIMQualifier
 65           //
 66           ////////////////////////////////////////////////////////////////////////////////
 67           
 68           class CIMConstQualifier;
 69           class CIMClassRep;
 70           /** Class CIMQualifier - This class defines the Pegasus implementation of the CIM 
 71           CIMQualifier \Ref{QUALIFIER}.
 72           */ 
 73           class PEGASUS_COMMON_LINKAGE CIMQualifier
 74           {
 75           public:
 76           
 77               /** Constructor instantiates a CIM qualifier with empty name value 
 78               fields.Constructor 
 79               @return instantiated empty qualifier object
 80              */
 81               CIMQualifier() : _rep(0)
 82               {
 83           
 84               }
 85 mike  1.1     /** Constructor - instantiates a CIM qualifier object from another 
 86               qualifier object. 
 87               @param CIM CIMQualifier object
 88               ATTN: What is differenc from clone?
 89               @return - Instantiated qualifier object
 90            */
 91               CIMQualifier(const CIMQualifier& x) 
 92               {
 93           	Inc(_rep = x._rep); 
 94               }
 95               /** Constructor - Instantiates a CIM qualifier object with the parameters 
 96               defined on input.
 97               @param String representing CIMName for the new qualifier
 98               @param value
 99               @param flavor - ATTN:
100               @param propoagated - ATTN:
101               @return -Returns the instantiated qualifier object or throws an exception 
102               if the name argument is illegal
103               
104               @exception Throws IllegalName if name argument not legal CIM 
105               identifier.
106 mike  1.1      */
107               CIMQualifier(
108           	const String& name, 
109           	const CIMValue& value, 
110           	Uint32 flavor = CIMFlavor::DEFAULTS,
111           	Boolean propagated = false)
112               {
113           	_rep = new CIMQualifierRep(name, value, flavor, propagated);
114               }
115               /// destructor
116               ~CIMQualifier()
117               {
118           	Dec(_rep);
119               }
120               /// operator
121               CIMQualifier& operator=(const CIMQualifier& x)
122               {
123           	if (x._rep != _rep)
124           	{
125           	    Dec(_rep);
126           	    Inc(_rep = x._rep);
127 mike  1.1 	}
128           
129           	return *this;
130               }
131           
132               /**	CIMMethod
133               
134               */
135               const String& getName() const 
136               { 
137           	_checkRep();
138           	return _rep->getName(); 
139               }
140           
141               /**	CIMMethod
142                Throws IllegalName if name argument not legal CIM  identifier.
143               */
144               void setName(const String& name) 
145               { 
146           	_checkRep();
147           	_rep->setName(name); 
148 mike  1.1     }
149           
150               /**	CIMMethod
151               
152               */
153               CIMType getType() const 
154               { 
155           	_checkRep();
156           	return _rep->getType(); 
157               }
158           
159               /**	CIMMethod
160               
161               */
162               Boolean isArray() const 
163               {
164           	_checkRep();
165           	return _rep->isArray();
166               }
167           
168               /**	CIMMethod
169 mike  1.1     
170               */
171               const CIMValue& getValue() const 
172               { 
173           	_checkRep();
174           	return _rep->getValue(); 
175               }
176           
177               /**	CIMMethod
178               
179               */
180               void setValue(const CIMValue& value) 
181               { 
182           	_checkRep();
183           	_rep->setValue(value); 
184               }
185           
186               /**	CIMMethod
187               
188               */
189               Uint32 getFlavor() const 
190 mike  1.1     {
191           	_checkRep();
192           	return _rep->getFlavor();
193               }
194           
195               /**	CIMMethod
196           
197              */
198               const Uint32 getPropagated() const 
199               {
200           	_checkRep();
201           	return _rep->getPropagated(); 
202               }
203           
204               /**	CIMMethod
205               
206               */
207               void setPropagated(Boolean propagated) 
208               {
209           	_checkRep();
210           	_rep->setPropagated(propagated); 
211 mike  1.1     }
212           
213               /**	CIMMethod
214               
215               */
216               operator int() const { return _rep != 0; }
217           
218               /**	CIMMethod
219               
220               */
221               void toXml(Array<Sint8>& out) const
222               {
223           	_checkRep();
224           	_rep->toXml(out);
225               }
226           
227               /**	CIMMethod
228           
229              */
230               void print() const
231               {
232 mike  1.1 	_checkRep();
233           	_rep->print();
234               }
235           
236               /**	CIMMethod
237           
238              */
239               Boolean identical(const CIMConstQualifier& x) const;
240           
241               /**	CIMMethod
242               
243               */
244               CIMQualifier clone() const
245               {
246           	return CIMQualifier(_rep->clone());
247               }
248           
249           private:
250           
251               CIMQualifier(CIMQualifierRep* rep) : _rep(rep)
252               {
253 mike  1.1     }
254           
255               void _checkRep() const
256               {
257           	if (!_rep)
258           	    throw UnitializedHandle();
259               }
260           
261               CIMQualifierRep* _rep;
262               friend class CIMConstQualifier;
263               friend class CIMClassRep;
264           };
265           
266           ////////////////////////////////////////////////////////////////////////////////
267           //
268           // CIMConstQualifier
269           //
270           ////////////////////////////////////////////////////////////////////////////////
271           
272           class PEGASUS_COMMON_LINKAGE CIMConstQualifier
273           {
274 mike  1.1 public:
275           
276               CIMConstQualifier() : _rep(0)
277               {
278           
279               }
280           
281               CIMConstQualifier(const CIMConstQualifier& x) 
282               {
283           	Inc(_rep = x._rep); 
284               }
285           
286               CIMConstQualifier(const CIMQualifier& x) 
287               {
288           	Inc(_rep = x._rep); 
289               }
290           
291               // Throws IllegalName if name argument not legal CIM identifier.
292           
293               CIMConstQualifier(
294           	const String& name, 
295 mike  1.1 	const CIMValue& value, 
296           	Uint32 flavor = CIMFlavor::DEFAULTS,
297           	Boolean propagated = false)
298               {
299           	_rep = new CIMQualifierRep(name, value, flavor, propagated);
300               }
301           
302               ~CIMConstQualifier()
303               {
304           	Dec(_rep);
305               }
306           
307               CIMConstQualifier& operator=(const CIMConstQualifier& x)
308               {
309           	if (x._rep != _rep)
310           	{
311           	    Dec(_rep);
312           	    Inc(_rep = x._rep);
313           	}
314           
315           	return *this;
316 mike  1.1     }
317           
318               CIMConstQualifier& operator=(const CIMQualifier& x)
319               {
320           	if (x._rep != _rep)
321           	{
322           	    Dec(_rep);
323           	    Inc(_rep = x._rep);
324           	}
325           
326           	return *this;
327               }
328           
329               const String& getName() const 
330               { 
331           	_checkRep();
332           	return _rep->getName(); 
333               }
334           
335               CIMType getType() const 
336               { 
337 mike  1.1 	_checkRep();
338           	return _rep->getType(); 
339               }
340           
341               Boolean isArray() const 
342               {
343           	_checkRep();
344           	return _rep->isArray();
345               }
346           
347               const CIMValue& getValue() const 
348               { 
349           	_checkRep();
350           	return _rep->getValue(); 
351               }
352           
353               const Uint32 getFlavor() const 
354               {
355           	_checkRep();
356           	return _rep->getFlavor();
357               }
358 mike  1.1 
359               const Uint32 getPropagated() const 
360               { 
361           	_checkRep();
362           	return _rep->getPropagated(); 
363               }
364           
365               operator int() const { return _rep != 0; }
366           
367               void toXml(Array<Sint8>& out) const
368               {
369           	_checkRep();
370           	_rep->toXml(out);
371               }
372           
373               void print() const
374               {
375           	_checkRep();
376           	_rep->print();
377               }
378           
379 mike  1.1     Boolean identical(const CIMConstQualifier& x) const
380               {
381           	x._checkRep();
382           	_checkRep();
383           	return _rep->identical(x._rep);
384               }
385           
386               CIMQualifier clone() const
387               {
388           	return CIMQualifier(_rep->clone());
389               }
390           
391           private:
392           
393               void _checkRep() const
394               {
395           	if (!_rep)
396           	    throw UnitializedHandle();
397               }
398           
399               CIMQualifierRep* _rep;
400 mike  1.1     friend class CIMQualifier;
401           };
402           
403           PEGASUS_NAMESPACE_END
404           
405           #endif /* Pegasus_Qualifier_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2