1 karl 1.23 //%2006////////////////////////////////////////////////////////////////////////
|
2 mike 1.8 //
|
3 karl 1.21 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
4 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
5 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
|
6 karl 1.17 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.21 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
8 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
|
9 karl 1.22 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.23 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
13 mike 1.8 //
14 // Permission is hereby granted, free of charge, to any person obtaining a copy
|
15 kumpf 1.11 // of this software and associated documentation files (the "Software"), to
16 // deal in the Software without restriction, including without limitation the
17 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
18 mike 1.8 // sell copies of the Software, and to permit persons to whom the Software is
19 // furnished to do so, subject to the following conditions:
20 //
|
21 kumpf 1.11 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
22 mike 1.8 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
23 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
24 kumpf 1.11 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
25 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
27 mike 1.8 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30 //==============================================================================
31 //
32 //%/////////////////////////////////////////////////////////////////////////////
33
34 #ifndef Pegasus_Scope_h
35 #define Pegasus_Scope_h
36
37 #include <Pegasus/Common/Config.h>
38 #include <Pegasus/Common/String.h>
|
39 kumpf 1.12 #include <Pegasus/Common/Linkage.h>
|
40 mike 1.8
41 PEGASUS_NAMESPACE_BEGIN
42
43 /**
|
44 kumpf 1.24 The CIMScope class represents the DMTF standard CIM qualifier scope
45 definition. The scope of a qualifier defines the types of CIM objects
46 with which the qualifier may be used. A CIMScope contains zero or more
47 of these values: CLASS, ASSOCIATION, INDICATION, PROPERTY, REFERENCE,
48 METHOD, PARAMETER.
|
49 mike 1.8 */
|
50 kumpf 1.13 class PEGASUS_COMMON_LINKAGE CIMScope
|
51 mike 1.8 {
|
52 kumpf 1.13 public:
53
|
54 kumpf 1.24 /**
55 Constructs a CIMScope object with the value NONE.
|
56 kumpf 1.15 */
|
57 kumpf 1.24 CIMScope();
|
58 kumpf 1.13
|
59 kumpf 1.24 /**
60 Constructs a CIMScope object from the value of a specified
61 CIMScope object.
62 @param scope The CIMScope object from which to construct a new
63 CIMScope object.
64 */
65 CIMScope(const CIMScope& scope);
66
67 /**
68 Assigns the value of the specified CIMScope object to this object.
69 @param scope The CIMScope object from which to assign this
70 CIMScope object.
71 @return A reference to this CIMScope object.
72 */
73 CIMScope& operator=(const CIMScope& scope);
74
75 /**
76 Checks whether the scope contains specified scope values.
77 @param scope A CIMScope specifying the scope values to check.
78 @return True if the scope contains all the values in the specified
79 CIMScope object, false otherwise.
80 kumpf 1.24 */
81 Boolean hasScope(const CIMScope& scope) const;
82
83 /**
84 Adds scopes value to the CIMScope object.
85 <p><b>Example:</b>
|
86 karl 1.18 <pre>
|
87 kumpf 1.24 CIMScope s;
88 s.addScope(CIMScope::INDICATION);
89 assert(s.hasScope(CIMScope::INDICATION));
|
90 karl 1.18 </pre>
|
91 kumpf 1.24 @param scope A CIMScope containing the scope values to add.
|
92 kumpf 1.15 */
|
93 kumpf 1.24 void addScope(const CIMScope & scope);
|
94 kumpf 1.13
|
95 kumpf 1.24 /**
96 Compares the CIMScope with a specified CIMScope.
97 @param scope The CIMScope to be compared.
98 @return True if this scope has the same set of values as the
99 specified scope, false otherwise.
|
100 kumpf 1.15 */
|
101 kumpf 1.13 Boolean equal (const CIMScope & scope) const;
102
|
103 kumpf 1.24 /**
104 Adds two scope values.
105 <p><b>Example:</b>
|
106 karl 1.18 <pre>
107 CIMScope s0(CIMScope::CLASS);
108 CIMScope s1(CIMScope::PARAMETER);
109 CIMScope s3 = s0 + S1;
110 </pre>
|
111 kumpf 1.24 @param scope A CIMScope containing the scope value to add to this
112 scope.
113 @return A new CIMScope object containing a union of the values in the
114 two scope objects.
|
115 kumpf 1.15 */
|
116 kumpf 1.24 CIMScope operator+(const CIMScope & scope) const;
|
117 kumpf 1.14
|
118 kumpf 1.24 /**
119 Returns a String representation of the CIMScope object.
|
120 kumpf 1.15 This method is for diagnostic purposes. The format of the output
|
121 kumpf 1.13 is subject to change.
|
122 kumpf 1.24 @return A String containing a human-readable representation of the
123 scope value.
|
124 kumpf 1.15 */
|
125 kumpf 1.24 String toString() const;
|
126 kumpf 1.13
|
127 kumpf 1.24 /**
128 Indicates that the CIMScope object has no value (is uninitialized).
129 This is not a valid qualifier scope.
|
130 kumpf 1.15 */
|
131 kumpf 1.14 static const CIMScope NONE;
|
132 kumpf 1.13
|
133 kumpf 1.24 /**
134 Indicates that the qualifier may be used with classes.
|
135 kumpf 1.15 */
|
136 kumpf 1.14 static const CIMScope CLASS;
|
137 kumpf 1.13
|
138 kumpf 1.24 /**
139 Indicates that the qualifier may be used with associations.
|
140 kumpf 1.15 */
|
141 kumpf 1.14 static const CIMScope ASSOCIATION;
|
142 kumpf 1.13
|
143 kumpf 1.24 /**
144 Indicates that the qualifier may be used with indications.
|
145 kumpf 1.15 */
|
146 kumpf 1.14 static const CIMScope INDICATION;
|
147 kumpf 1.13
|
148 kumpf 1.24 /**
149 Indicates that the qualifier may be used with properties.
|
150 kumpf 1.15 */
|
151 kumpf 1.14 static const CIMScope PROPERTY;
|
152 kumpf 1.13
|
153 kumpf 1.24 /**
154 Indicates that the qualifier may be used with references.
|
155 kumpf 1.15 */
|
156 kumpf 1.14 static const CIMScope REFERENCE;
|
157 kumpf 1.13
|
158 kumpf 1.24 /**
159 Indicates that the qualifier may be used with methods.
|
160 kumpf 1.15 */
|
161 kumpf 1.14 static const CIMScope METHOD;
|
162 kumpf 1.13
|
163 kumpf 1.24 /**
164 Indicates that the qualifier may be used with parameters.
|
165 kumpf 1.15 */
|
166 kumpf 1.14 static const CIMScope PARAMETER;
|
167 kumpf 1.13
|
168 kumpf 1.24 /**
169 Indicates that the qualifier may be used with any of the types
|
170 kumpf 1.13 of objects (classes, associations, indications, properties, references,
|
171 kumpf 1.15 methods, parameters).
172 */
|
173 kumpf 1.14 static const CIMScope ANY;
|
174 kumpf 1.13
175 private:
|
176 kumpf 1.14
177 CIMScope (const Uint32 scope);
|
178 kumpf 1.13 Uint32 cimScope;
|
179 kumpf 1.24
|
180 schuur 1.19 friend class BinaryStreamer;
|
181 mike 1.8 };
182
183 PEGASUS_NAMESPACE_END
184
185 #endif /* Pegasus_Scope_h */
|