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