version 1.19, 2004/06/03 08:45:20
|
version 1.25, 2008/12/01 17:49:50
|
|
|
//%2003//////////////////////////////////////////////////////////////////////// |
//%LICENSE//////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Development |
// Licensed to The Open Group (TOG) under one or more contributor license |
// Company, L. P., IBM Corp., The Open Group, Tivoli Systems. |
// agreements. Refer to the OpenPegasusNOTICE.txt file distributed with |
// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.; |
// this work for additional information regarding copyright ownership. |
// IBM Corp.; EMC Corporation, The Open Group. |
// Each contributor licenses this file to you under the OpenPegasus Open |
// |
// Source License; you may not use this file except in compliance with the |
// Permission is hereby granted, free of charge, to any person obtaining a copy |
// License. |
// of this software and associated documentation files (the "Software"), to |
// |
// deal in the Software without restriction, including without limitation the |
// Permission is hereby granted, free of charge, to any person obtaining a |
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
// copy of this software and associated documentation files (the "Software"), |
// sell copies of the Software, and to permit persons to whom the Software is |
// to deal in the Software without restriction, including without limitation |
// furnished to do so, subject to the following conditions: |
// the rights to use, copy, modify, merge, publish, distribute, sublicense, |
// |
// and/or sell copies of the Software, and to permit persons to whom the |
// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN |
// Software is furnished to do so, subject to the following conditions: |
// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED |
// |
// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT |
// The above copyright notice and this permission notice shall be included |
// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR |
// in all copies or substantial portions of the Software. |
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
// |
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
// |
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
//============================================================================== |
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
// |
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
// Author: Mike Brasher (mbrasher@bmc.com) |
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
// |
// |
// Modified By: Carol Ann Krug Graves, Hewlett-Packard Company |
////////////////////////////////////////////////////////////////////////// |
// (carolann_graves@hp.com) |
|
// Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com) |
|
// Adrian Schuur (schuur@de.ibm.com) PEP 164 |
|
// | // |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
|
|
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
/** | /** |
The CIMScope class implements the concept of the scope of a CIM qualifier |
The CIMScope class represents the DMTF standard CIM qualifier scope |
object. The scope of a qualifier defines the set of types of CIM objects |
definition. The scope of a qualifier defines the types of CIM objects |
with which the qualifier may be used. The possible values are: |
with which the qualifier may be used. A CIMScope contains zero or more |
NONE, CLASS, ASSOCIATION, INDICATION, PROPERTY, REFERENCE, METHOD, |
of these values: CLASS, ASSOCIATION, INDICATION, PROPERTY, REFERENCE, |
PARAMETER, ANY. |
METHOD, PARAMETER. |
The scope is a set of one or more of these possible values. |
|
The value "NONE" implies a CIMScope object that has not yet been assigned a |
|
value (uninitialized). It is not a valid value for the scope of a |
|
qualifier object. |
|
The value "ANY" means that the qualifier may be used with any of the CIM |
|
object types, and is equivalent to listing each of the object types in the |
|
scope. |
|
*/ | */ |
class PEGASUS_COMMON_LINKAGE CIMScope | class PEGASUS_COMMON_LINKAGE CIMScope |
{ | { |
public: | public: |
| |
/** Constructs a CIMScope object with no value set (default constructor). |
/** |
The values are null. |
Constructs a CIMScope object with the value NONE. |
*/ | */ |
CIMScope (); | CIMScope (); |
| |
/** Constructs a CIMScope object from an existing CIMScope object (copy |
/** |
constructor). |
Constructs a CIMScope object from the value of a specified |
@param scope Specifies an instance of CIMScope object. |
CIMScope object. |
|
@param scope The CIMScope object from which to construct a new |
|
CIMScope object. |
*/ | */ |
CIMScope (const CIMScope & scope); | CIMScope (const CIMScope & scope); |
| |
/** Assigns the value of one CIMScope object to another (assignment |
/** |
operator). |
Assigns the value of the specified CIMScope object to this object. |
@param scope Specifies the name of a CIMScope object that contains |
@param scope The CIMScope object from which to assign this |
the values that you want to assign to another CIMScope object. |
CIMScope object. |
@return The CIMScope object with the values of the specified CIMScope |
@return A reference to this CIMScope object. |
object. For example: |
|
<pre> |
|
CIMScope s0; |
|
CIMScope s1(s0); |
|
</pre> |
|
The values in CIMScope s0 are assigned to the CIMScope s1 instance. |
|
*/ | */ |
CIMScope & operator= (const CIMScope & scope); | CIMScope & operator= (const CIMScope & scope); |
| |
/** Determines if every value in the specified CIMScope object is included |
/** |
in this CIMScope object. |
Checks whether the scope contains specified scope values. |
@param scope - Specifies a name of a CIMScope object. |
@param scope A CIMScope specifying the scope values to check. |
@return True if every value in the specified CIMScope object is |
@return True if the scope contains all the values in the specified |
included in the CIMScope object; otherwise, false. |
CIMScope object, false otherwise. |
*/ | */ |
Boolean hasScope (const CIMScope & scope) const; | Boolean hasScope (const CIMScope & scope) const; |
| |
/** Adds the specified scope value to the CIMScope object. |
/** |
@param scope - Specifies a scope value. For example: |
Adds scopes value to the CIMScope object. |
|
<p><b>Example:</b> |
<pre> | <pre> |
CIMScope s0; |
CIMScope s; |
s0.addScope (CIMScope::INDICATION); |
s.addScope(CIMScope::INDICATION); |
if(s0.hasScope (CIMScope::INDICATION)) |
assert(s.hasScope(CIMScope::INDICATION)); |
... .. |
|
</pre> | </pre> |
|
@param scope A CIMScope containing the scope values to add. |
*/ | */ |
void addScope (const CIMScope & scope); | void addScope (const CIMScope & scope); |
| |
/** Compares two CIMScope objects. |
/** |
@param scope - Specifies a CIMScope object. |
Compares the CIMScope with a specified CIMScope. |
@return True if the two CIMScope objects are equal; otherwise, false. |
@param scope The CIMScope to be compared. |
For example, |
@return True if this scope has the same set of values as the |
<pre> |
specified scope, false otherwise. |
CIMScope s0; |
|
s0.addScope (CIMScope::CLASS + CIMScope::PARAMETER); |
|
if(s0.hasScope (CIMScope::CLASS)) |
|
... .. |
|
</pre> |
|
*/ | */ |
Boolean equal (const CIMScope & scope) const; | Boolean equal (const CIMScope & scope) const; |
| |
/** Combines two CIMScope objects. |
/** |
@param scope - Specifies a CIMScope object to add. |
Adds two scope values. |
@return A new CIMScope object that represents the combination of this |
<p><b>Example:</b> |
scope object with the specified scope object. |
|
<pre> | <pre> |
CIMScope s0(CIMScope::CLASS); | CIMScope s0(CIMScope::CLASS); |
CIMScope s1(CIMScope::PARAMETER); | CIMScope s1(CIMScope::PARAMETER); |
CIMScope s3 = s0 + S1; | CIMScope s3 = s0 + S1; |
</pre> | </pre> |
|
@param scope A CIMScope containing the scope value to add to this |
|
scope. |
|
@return A new CIMScope object containing a union of the values in the |
|
two scope objects. |
*/ | */ |
CIMScope operator+ (const CIMScope & scope) const; | CIMScope operator+ (const CIMScope & scope) const; |
| |
/** Returns a String representation of the CIMScope object. |
/** |
|
Returns a String representation of the CIMScope object. |
This method is for diagnostic purposes. The format of the output | This method is for diagnostic purposes. The format of the output |
is subject to change. | is subject to change. |
|
@return A String containing a human-readable representation of the |
|
scope value. |
*/ | */ |
String toString () const; | String toString () const; |
| |
/** Indicates that the CIMScope object has no value (is uninitialized). |
/** |
|
Indicates that the CIMScope object has no value (is uninitialized). |
|
This is not a valid qualifier scope. |
*/ | */ |
static const CIMScope NONE; | static const CIMScope NONE; |
| |
/** Indicates that the qualifier may be used with classes. |
/** |
|
Indicates that the qualifier may be used with classes. |
*/ | */ |
static const CIMScope CLASS; | static const CIMScope CLASS; |
| |
/** Indicates that the qualifier may be used with associations. |
/** |
|
Indicates that the qualifier may be used with associations. |
*/ | */ |
static const CIMScope ASSOCIATION; | static const CIMScope ASSOCIATION; |
| |
/** Indicates that the qualifier may be used with indications. |
/** |
|
Indicates that the qualifier may be used with indications. |
*/ | */ |
static const CIMScope INDICATION; | static const CIMScope INDICATION; |
| |
/** Indicates that the qualifier may be used with properties. |
/** |
|
Indicates that the qualifier may be used with properties. |
*/ | */ |
static const CIMScope PROPERTY; | static const CIMScope PROPERTY; |
| |
/** Indicates that the qualifier may be used with references. |
/** |
|
Indicates that the qualifier may be used with references. |
*/ | */ |
static const CIMScope REFERENCE; | static const CIMScope REFERENCE; |
| |
/** Indicates that the qualifier may be used with methods. |
/** |
|
Indicates that the qualifier may be used with methods. |
*/ | */ |
static const CIMScope METHOD; | static const CIMScope METHOD; |
| |
/** Indicates that the qualifier may be used with parameters. |
/** |
|
Indicates that the qualifier may be used with parameters. |
*/ | */ |
static const CIMScope PARAMETER; | static const CIMScope PARAMETER; |
| |
/** Indicates that the qualifier may be used with any of the types |
/** |
|
Indicates that the qualifier may be used with any of the types |
of objects (classes, associations, indications, properties, references, | of objects (classes, associations, indications, properties, references, |
methods, parameters). | methods, parameters). |
*/ | */ |
|
|
| |
private: | private: |
| |
// |
|
CIMScope (const Uint32 scope); | CIMScope (const Uint32 scope); |
// Private member for storing he CIMScope |
|
Uint32 cimScope; | Uint32 cimScope; |
| |
friend class BinaryStreamer; | friend class BinaryStreamer; |