1 karl 1.16 //%2006////////////////////////////////////////////////////////////////////////
|
2 mike 1.1 //
|
3 karl 1.12 // 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.8 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.12 // 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.13 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.16 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
13 mike 1.1 //
14 // Permission is hereby granted, free of charge, to any person obtaining a copy
15 // 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 // 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 kumpf 1.5 //
|
21 mike 1.1 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
22 // 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 // 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 // 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 // Author: Mike Brasher (mbrasher@bmc.com)
33 //
|
34 kumpf 1.3 // Modified By: Carol Ann Krug Graves, Hewlett-Packard Company
35 // (carolann_graves@hp.com)
|
36 kumpf 1.14 // Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
|
37 kumpf 1.3 //
|
38 mike 1.1 //%/////////////////////////////////////////////////////////////////////////////
39
40 #ifndef Pegasus_Common_RepositoryBase_h
41 #define Pegasus_Common_RepositoryBase_h
42
43 #include <Pegasus/Common/Config.h>
|
44 schuur 1.11 #include <Pegasus/Common/HashTable.h>
|
45 mike 1.1 #include <Pegasus/Common/CIMClass.h>
46 #include <Pegasus/Common/CIMObject.h>
47 #include <Pegasus/Common/CIMInstance.h>
48 #include <Pegasus/Common/CIMPropertyList.h>
49 #include <Pegasus/Common/CIMQualifierDecl.h>
|
50 kumpf 1.15 #include <Pegasus/Common/ContentLanguageList.h>
|
51 mike 1.1
52 PEGASUS_NAMESPACE_BEGIN
53
54 class RepositoryDeclContext;
55
56 /** This class declares the interface for a CIM repository implementation.
57
|
58 kumpf 1.6 CIMRepositoryBase is a pure virtual base class (all the method signatures
|
59 mike 1.1 must
60 */
|
61 kumpf 1.6 class CIMRepositoryBase
|
62 mike 1.1 {
63 public:
64
65 virtual ~CIMRepositoryBase() { }
66
67 virtual CIMClass getClass(
|
68 kumpf 1.7 const CIMNamespaceName& nameSpace,
69 const CIMName& className,
|
70 mike 1.1 Boolean localOnly = true,
71 Boolean includeQualifiers = true,
72 Boolean includeClassOrigin = false,
73 const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
74
75 virtual CIMInstance getInstance(
|
76 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
77 kumpf 1.2 const CIMObjectPath& instanceName,
|
78 mike 1.1 Boolean localOnly = true,
79 Boolean includeQualifiers = false,
80 Boolean includeClassOrigin = false,
81 const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
82
83 virtual void deleteClass(
|
84 kumpf 1.7 const CIMNamespaceName& nameSpace,
85 const CIMName& className) = 0;
|
86 mike 1.1
87 virtual void deleteInstance(
|
88 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
89 kumpf 1.2 const CIMObjectPath& instanceName) = 0;
|
90 mike 1.1
91 virtual void createClass(
|
92 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
93 chuck 1.10 const CIMClass& newClass,
|
94 kumpf 1.15 const ContentLanguageList& contentLangs = ContentLanguageList()) = 0;
|
95 mike 1.1
|
96 kumpf 1.2 virtual CIMObjectPath createInstance(
|
97 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
98 chuck 1.10 const CIMInstance& newInstance,
|
99 kumpf 1.15 const ContentLanguageList& contentLangs = ContentLanguageList()) = 0;
|
100 mike 1.1
101 virtual void modifyClass(
|
102 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
103 chuck 1.10 const CIMClass& modifiedClass,
|
104 kumpf 1.15 const ContentLanguageList& contentLangs = ContentLanguageList()) = 0;
|
105 mike 1.1
106 virtual void modifyInstance(
|
107 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
108 kumpf 1.3 const CIMInstance& modifiedInstance,
|
109 mike 1.1 Boolean includeQualifiers = true,
|
110 chuck 1.10 const CIMPropertyList& propertyList = CIMPropertyList(),
|
111 kumpf 1.15 const ContentLanguageList& contentLangs = ContentLanguageList()) = 0;
|
112 mike 1.1
113 virtual Array<CIMClass> enumerateClasses(
|
114 kumpf 1.7 const CIMNamespaceName& nameSpace,
115 const CIMName& className = CIMName(),
|
116 mike 1.1 Boolean deepInheritance = false,
117 Boolean localOnly = true,
118 Boolean includeQualifiers = true,
119 Boolean includeClassOrigin = false) = 0;
120
|
121 kumpf 1.7 virtual Array<CIMName> enumerateClassNames(
122 const CIMNamespaceName& nameSpace,
123 const CIMName& className = CIMName(),
|
124 mike 1.1 Boolean deepInheritance = false) = 0;
125
|
126 kumpf 1.18 virtual Array<CIMInstance> enumerateInstancesForClass(
|
127 kumpf 1.7 const CIMNamespaceName& nameSpace,
128 const CIMName& className,
|
129 mike 1.1 Boolean localOnly = true,
130 Boolean includeQualifiers = false,
131 Boolean includeClassOrigin = false,
132 const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
133
|
134 kumpf 1.18 virtual Array<CIMObjectPath> enumerateInstanceNamesForClass(
|
135 kumpf 1.7 const CIMNamespaceName& nameSpace,
136 const CIMName& className) = 0;
|
137 mike 1.1
138 virtual Array<CIMInstance> execQuery(
139 const String& queryLanguage,
140 const String& query) = 0;
141
|
142 kumpf 1.4 virtual Array<CIMObject> associators(
|
143 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
144 kumpf 1.2 const CIMObjectPath& objectName,
|
145 kumpf 1.7 const CIMName& assocClass = CIMName(),
146 const CIMName& resultClass = CIMName(),
|
147 mike 1.1 const String& role = String::EMPTY,
148 const String& resultRole = String::EMPTY,
149 Boolean includeQualifiers = false,
150 Boolean includeClassOrigin = false,
151 const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
152
|
153 kumpf 1.2 virtual Array<CIMObjectPath> associatorNames(
|
154 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
155 kumpf 1.2 const CIMObjectPath& objectName,
|
156 kumpf 1.7 const CIMName& assocClass = CIMName(),
157 const CIMName& resultClass = CIMName(),
|
158 mike 1.1 const String& role = String::EMPTY,
159 const String& resultRole = String::EMPTY) = 0;
160
|
161 kumpf 1.4 virtual Array<CIMObject> references(
|
162 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
163 kumpf 1.2 const CIMObjectPath& objectName,
|
164 kumpf 1.7 const CIMName& resultClass = CIMName(),
|
165 mike 1.1 const String& role = String::EMPTY,
166 Boolean includeQualifiers = false,
167 Boolean includeClassOrigin = false,
168 const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
169
|
170 kumpf 1.2 virtual Array<CIMObjectPath> referenceNames(
|
171 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
172 kumpf 1.2 const CIMObjectPath& objectName,
|
173 kumpf 1.7 const CIMName& resultClass = CIMName(),
|
174 mike 1.1 const String& role = String::EMPTY) = 0;
175
176 virtual CIMValue getProperty(
|
177 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
178 kumpf 1.2 const CIMObjectPath& instanceName,
|
179 kumpf 1.7 const CIMName& propertyName) = 0;
|
180 mike 1.1
181 virtual void setProperty(
|
182 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
183 kumpf 1.2 const CIMObjectPath& instanceName,
|
184 kumpf 1.7 const CIMName& propertyName,
|
185 chuck 1.10 const CIMValue& newValue = CIMValue(),
|
186 kumpf 1.15 const ContentLanguageList& contentLangs = ContentLanguageList()) = 0;
|
187 mike 1.1
188 virtual CIMQualifierDecl getQualifier(
|
189 kumpf 1.7 const CIMNamespaceName& nameSpace,
190 const CIMName& qualifierName) = 0;
|
191 mike 1.1
192 virtual void setQualifier(
|
193 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
194 chuck 1.10 const CIMQualifierDecl& qualifierDecl,
|
195 kumpf 1.15 const ContentLanguageList& contentLangs = ContentLanguageList()) = 0;
|
196 mike 1.1
197 virtual void deleteQualifier(
|
198 kumpf 1.7 const CIMNamespaceName& nameSpace,
199 const CIMName& qualifierName) = 0;
|
200 mike 1.1
201 virtual Array<CIMQualifierDecl> enumerateQualifiers(
|
202 kumpf 1.7 const CIMNamespaceName& nameSpace) = 0;
|
203 mike 1.1
|
204 schuur 1.11 typedef HashTable <String, String, EqualNoCaseFunc, HashLowerCaseFunc> NameSpaceAttributes;
205
206 virtual void createNameSpace(const CIMNamespaceName& nameSpace,
207 const NameSpaceAttributes &attributes=NameSpaceAttributes()) = 0;
|
208 mike 1.1
|
209 kumpf 1.7 virtual Array<CIMNamespaceName> enumerateNameSpaces() const = 0;
|
210 mike 1.1
|
211 kumpf 1.7 virtual void deleteNameSpace(const CIMNamespaceName& nameSpace) = 0;
|
212 mike 1.1
|
213 schuur 1.11 virtual Boolean getNameSpaceAttributes(const CIMNamespaceName& nameSpace,
214 NameSpaceAttributes &attributes)=0;
215
|
216 mike 1.1 virtual void getSubClassNames(
|
217 kumpf 1.7 const CIMNamespaceName& nameSpaceName,
218 const CIMName& className,
|
219 mike 1.1 Boolean deepInheritance,
|
220 kumpf 1.7 Array<CIMName>& subClassNames) const = 0;
|
221 mike 1.1
222 virtual void getSuperClassNames(
|
223 kumpf 1.7 const CIMNamespaceName& nameSpaceName,
224 const CIMName& className,
225 Array<CIMName>& subClassNames) const = 0;
|
226 mike 1.1 };
227
228 PEGASUS_NAMESPACE_END
229
230 #endif /* Pegasus_Common_RepositoryBase_h */
|