1 martin 1.5 //%LICENSE////////////////////////////////////////////////////////////////
2 //
3 // Licensed to The Open Group (TOG) under one or more contributor license
4 // agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
5 // this work for additional information regarding copyright ownership.
6 // Each contributor licenses this file to you under the OpenPegasus Open
7 // Source License; you may not use this file except in compliance with the
8 // License.
9 //
10 // Permission is hereby granted, free of charge, to any person obtaining a
11 // copy of this software and associated documentation files (the "Software"),
12 // to deal in the Software without restriction, including without limitation
13 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
14 // and/or sell copies of the Software, and to permit persons to whom the
15 // Software is furnished to do so, subject to the following conditions:
16 //
17 // The above copyright notice and this permission notice shall be included
18 // in all copies or substantial portions of the Software.
19 //
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 martin 1.5 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23 // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24 // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25 // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26 // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28 //////////////////////////////////////////////////////////////////////////
|
139 kumpf 1.1 void modifyNameSpace(
140 const CIMNamespaceName& nameSpace,
141 Boolean shareable,
142 Boolean updatesAllowed);
143 void deleteNameSpace(const CIMNamespaceName& nameSpace);
144 Boolean isNameSpaceEmpty(const CIMNamespaceName& nameSpace);
145
146 Array<CIMQualifierDecl> enumerateQualifiers(
147 const CIMNamespaceName& nameSpace);
148 /**
149 Gets a qualifier declaration for a specified qualifier name in a
150 specified namespace. Returns an uninitialized object if the qualifier
151 is not found.
152 */
153 CIMQualifierDecl getQualifier(
154 const CIMNamespaceName& nameSpace,
155 const CIMName& qualifierName);
156 void setQualifier(
157 const CIMNamespaceName& nameSpace,
158 const CIMQualifierDecl& qualifierDecl);
159 void deleteQualifier(
160 kumpf 1.1 const CIMNamespaceName& nameSpace,
161 const CIMName& qualifierName);
162
163 Array<Pair<String, String> > enumerateClassNames(
164 const CIMNamespaceName& nameSpace);
165 CIMClass getClass(
166 const CIMNamespaceName& nameSpace,
167 const CIMName& className,
168 const CIMName& superClassName);
169 void createClass(
170 const CIMNamespaceName& nameSpace,
171 const CIMClass& newClass,
172 const Array<ClassAssociation>& classAssocEntries);
173 void modifyClass(
174 const CIMNamespaceName& nameSpace,
175 const CIMClass& modifiedClass,
176 const CIMName& oldSuperClassName,
177 Boolean isAssociation,
178 const Array<ClassAssociation>& classAssocEntries);
179 void deleteClass(
180 const CIMNamespaceName& nameSpace,
181 kumpf 1.1 const CIMName& className,
182 const CIMName& superClassName,
183 Boolean isAssociation,
184 const Array<CIMNamespaceName>& dependentNameSpaceNames);
185 Array<CIMObjectPath> enumerateInstanceNamesForClass(
186 const CIMNamespaceName& nameSpace,
187 const CIMName& className);
188 Array<CIMInstance> enumerateInstancesForClass(
189 const CIMNamespaceName& nameSpace,
190 const CIMName& className);
191 CIMInstance getInstance(
192 const CIMNamespaceName& nameSpace,
193 const CIMObjectPath& instanceName);
194 void createInstance(
195 const CIMNamespaceName& nameSpace,
196 const CIMObjectPath& instanceName,
197 const CIMInstance& cimInstance,
198 const Array<InstanceAssociation>& instAssocEntries);
199 void modifyInstance(
200 const CIMNamespaceName& nameSpace,
201 const CIMObjectPath& instanceName,
202 kumpf 1.1 const CIMInstance& cimInstance);
203 void deleteInstance(
204 const CIMNamespaceName& nameSpace,
205 const CIMObjectPath& instanceName);
206 Boolean instanceExists(
207 const CIMNamespaceName& nameSpace,
208 const CIMObjectPath& instanceName);
209
210 void getClassAssociatorNames(
211 const CIMNamespaceName& nameSpace,
212 const Array<CIMName>& classList,
213 const Array<CIMName>& assocClassList,
214 const Array<CIMName>& resultClassList,
215 const String& role,
216 const String& resultRole,
217 Array<String>& associatorNames);
218 void getClassReferenceNames(
219 const CIMNamespaceName& nameSpace,
220 const Array<CIMName>& classList,
221 const Array<CIMName>& resultClassList,
222 const String& role,
223 kumpf 1.1 Array<String>& referenceNames);
224
225 void getInstanceAssociatorNames(
226 const CIMNamespaceName& nameSpace,
227 const CIMObjectPath& instanceName,
228 const Array<CIMName>& assocClassList,
229 const Array<CIMName>& resultClassList,
230 const String& role,
231 const String& resultRole,
232 Array<String>& associatorNames);
233 void getInstanceReferenceNames(
234 const CIMNamespaceName& nameSpace,
235 const CIMObjectPath& instanceName,
236 const Array<CIMName>& resultClassList,
237 const String& role,
238 Array<String>& referenceNames);
239
240 private:
241
242 void _execDbStatement(
243 sqlite3* db,
244 kumpf 1.1 const char* sqlStatement);
245
246 void _initSchema(sqlite3* db);
247
248 void _beginTransaction(sqlite3* db);
249 void _commitTransaction(sqlite3* db);
250
251 String _getNormalizedName(const CIMName& className)
252 {
253 String cn = className.getString();
254 cn.toLower();
255 return cn;
256 }
257
|
261 kumpf 1.1 void _addClassAssociationEntries(
262 sqlite3* db,
263 const CIMNamespaceName& nameSpace,
264 const Array<ClassAssociation>& classAssocEntries);
265 void _removeClassAssociationEntries(
266 sqlite3* db,
267 const CIMNamespaceName& nameSpace,
268 const CIMName& assocClassName);
269
270 void _addInstanceAssociationEntries(
271 sqlite3* db,
272 const CIMNamespaceName& nameSpace,
273 const Array<InstanceAssociation>& instanceAssocEntries);
274 void _removeInstanceAssociationEntries(
275 sqlite3* db,
276 const CIMNamespaceName& nameSpace,
277 const CIMObjectPath& assocInstanceName);
278
279 String _repositoryRoot;
|