(file) Return to Repository.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Repository

  1 mike  1.1 //BEGIN_LICENSE
  2           //
  3           // Copyright (c) 2000 The Open Group, BMC Software, Tivoli Systems, IBM
  4           //
  5           // Permission is hereby granted, free of charge, to any person obtaining a
  6           // copy of this software and associated documentation files (the "Software"),
  7           // to deal in the Software without restriction, including without limitation
  8           // the rights to use, copy, modify, merge, publish, distribute, sublicense,
  9           // and/or sell copies of the Software, and to permit persons to whom the
 10           // Software is furnished to do so, subject to the following conditions:
 11           //
 12           // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 13           // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 14           // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 15           // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 16           // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 17           // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 18           // DEALINGS IN THE SOFTWARE.
 19           //
 20           //END_LICENSE
 21           //BEGIN_HISTORY
 22 mike  1.1 //
 23           // Author:
 24           //
 25 mike  1.2 // $Log: Repository.h,v $
 26 mike  1.8 // Revision 1.7  2001/02/13 07:00:18  mike
 27           // Added partial createInstance() method to repository.
 28           //
 29 mike  1.7 // Revision 1.6  2001/02/11 05:45:33  mike
 30           // Added case insensitive logic for files in Repository
 31           //
 32 mike  1.6 // Revision 1.5  2001/02/08 00:31:51  mike
 33 mike  1.8 // Clean up on CIMOperations class.
 34 mike  1.6 // Reformmatted documentation.
 35           //
 36 mike  1.5 // Revision 1.4  2001/02/06 17:04:03  karl
 37           // add documentation
 38           //
 39 karl  1.4 // Revision 1.3  2001/01/31 08:20:51  mike
 40           // Added dispatcher framework.
 41           // Added enumerateInstanceNames.
 42           //
 43 mike  1.3 // Revision 1.2  2001/01/28 04:11:03  mike
 44           // fixed qualifier resolution
 45           //
 46 mike  1.2 // Revision 1.1.1.1  2001/01/14 19:53:56  mike
 47           // Pegasus import
 48           //
 49 mike  1.1 //
 50           //END_HISTORY
 51           
 52           #ifndef PegasusRepository_Repository_h
 53           #define PegasusRepository_Repository_h
 54           
 55           #include <Pegasus/Common/Config.h>
 56 mike  1.8 #include <Pegasus/Common/CIMClass.h>
 57           #include <Pegasus/Common/CIMInstance.h>
 58           #include <Pegasus/Common/CIMQualifierDecl.h>
 59           #include <Pegasus/Common/CIMOperations.h>
 60 mike  1.1 
 61           PEGASUS_NAMESPACE_BEGIN
 62           
 63           class RepositoryDeclContext;
 64 mike  1.7 
 65 mike  1.8 /** This class derives from the CIMOperations class and provides a simple
 66 mike  1.7     implementation of a CIM repository. It only implements the methods
 67               for manipulating classes and instances. The others throw this exception:
 68           
 69               <pre>
 70           	CimException(CimException::NOT_SUPPORTED)
 71               </pre>
 72 karl  1.4 */
 73 mike  1.1 
 74 mike  1.8 class PEGASUS_REPOSITORY_LINKAGE Repository : public CIMOperations
 75 mike  1.1 {
 76           public:
 77 mike  1.6 
 78 karl  1.4     /// Constructor
 79 mike  1.1     Repository(const String& path);
 80 mike  1.6 
 81 karl  1.4     /// Descructor
 82 mike  1.1     virtual ~Repository();
 83 mike  1.6 
 84 mike  1.8     /// virtual class CIMClass. From the operations class
 85               virtual CIMClass getClass(
 86 mike  1.1 	const String& nameSpace,
 87           	const String& className,
 88           	Boolean localOnly = true,
 89           	Boolean includeQualifiers = true,
 90           	Boolean includeClassOrigin = false,
 91           	const Array<String>& propertyList = _getStringArray());
 92 mike  1.6 
 93 karl  1.4     /// getInstance
 94 mike  1.8     virtual CIMInstance getInstance(
 95 mike  1.1 	const String& nameSpace,
 96 mike  1.8 	const CIMReference& instanceName,
 97 mike  1.1 	Boolean localOnly = true,
 98           	Boolean includeQualifiers = false,
 99           	Boolean includeClassOrigin = false,
100           	const Array<String>& propertyList = _getStringArray());
101 mike  1.6 
102 karl  1.4     /// deleteClass
103 mike  1.1     virtual void deleteClass(
104           	const String& nameSpace,
105           	const String& className);
106 mike  1.6 
107 karl  1.4     /// deleteInstance
108 mike  1.1     virtual void deleteInstance(
109           	const String& nameSpace,
110 mike  1.8 	const CIMReference& instanceName);
111 mike  1.6 
112 karl  1.4     /// createClass
113 mike  1.1     virtual void createClass(
114           	const String& nameSpace,
115 mike  1.8 	CIMClass& newClass);
116 mike  1.6 
117 karl  1.4     /// createInstance
118 mike  1.1     virtual void createInstance(
119           	const String& nameSpace,
120 mike  1.8 	CIMInstance& newInstance);
121 mike  1.6 
122 mike  1.1     virtual void modifyClass(
123           	const String& nameSpace,
124 mike  1.8 	CIMClass& modifiedClass);
125 mike  1.6 
126 karl  1.4     /// modifyInstance
127 mike  1.1     virtual void modifyInstance(
128           	const String& nameSpace,
129 mike  1.8 	const CIMInstance& modifiedInstance);
130 mike  1.6 
131 karl  1.4     /// enumerateClasses
132 mike  1.8     virtual Array<CIMClass> enumerateClasses(
133 mike  1.1 	const String& nameSpace,
134           	const String& className = String::EMPTY,
135           	Boolean deepInheritance = false,
136           	Boolean localOnly = true,
137           	Boolean includeQualifiers  = true,
138           	Boolean includeClassOrigin = false);
139 mike  1.6 
140 karl  1.4     /// enumerateClassNames
141 mike  1.1     virtual Array<String> enumerateClassNames(
142           	const String& nameSpace,
143           	const String& className = String::EMPTY,
144           	Boolean deepInheritance = false);
145 mike  1.6 
146 karl  1.4     /// enumerateInstances
147 mike  1.8     virtual Array<CIMInstance> enumerateInstances(
148 mike  1.1 	const String& nameSpace,
149           	const String& className,
150           	Boolean deepInheritance = true,
151           	Boolean localOnly = true,
152           	Boolean includeQualifiers = false,
153           	Boolean includeClassOrigin = false,
154           	const Array<String>& propertyList = _getStringArray());
155 mike  1.6 
156 karl  1.4     /// enumerateInstanceNames
157 mike  1.8     virtual Array<CIMReference> enumerateInstanceNames(
158 mike  1.1 	const String& nameSpace,
159           	const String& className);
160 mike  1.6 
161 karl  1.4     /// execQuery
162 mike  1.8     virtual Array<CIMInstance> execQuery(
163 mike  1.1 	const String& queryLanguage,
164           	const String& query) ;
165 mike  1.6 
166 karl  1.4     /// associators
167 mike  1.8     virtual Array<CIMInstance> associators(
168 mike  1.1 	const String& nameSpace,
169 mike  1.8 	const CIMReference& objectName,
170 mike  1.1 	const String& assocClass = String::EMPTY,
171           	const String& resultClass = String::EMPTY,
172           	const String& role = String::EMPTY,
173           	const String& resultRole = String::EMPTY,
174           	Boolean includeQualifiers = false,
175           	Boolean includeClassOrigin = false,
176           	const Array<String>& propertyList = _getStringArray());
177 mike  1.6 
178 karl  1.4     /// associateNames
179 mike  1.8     virtual Array<CIMReference> associatorNames(
180 mike  1.1 	const String& nameSpace,
181 mike  1.8 	const CIMReference& objectName,
182 mike  1.1 	const String& assocClass = String::EMPTY,
183           	const String& resultClass = String::EMPTY,
184           	const String& role = String::EMPTY,
185           	const String& resultRole = String::EMPTY);
186 mike  1.6 
187 karl  1.4     /// references
188 mike  1.8     virtual Array<CIMInstance> references(
189 mike  1.1 	const String& nameSpace,
190 mike  1.8 	const CIMReference& objectName,
191 mike  1.1 	const String& resultClass = String::EMPTY,
192           	const String& role = String::EMPTY,
193           	Boolean includeQualifiers = false,
194           	Boolean includeClassOrigin = false,
195           	const Array<String>& propertyList = _getStringArray());
196 mike  1.6 
197 karl  1.4     /// referenceNames
198 mike  1.8     virtual Array<CIMReference> referenceNames(
199 mike  1.1 	const String& nameSpace,
200 mike  1.8 	const CIMReference& objectName,
201 mike  1.1 	const String& resultClass = String::EMPTY,
202           	const String& role = String::EMPTY);
203 mike  1.6 
204 karl  1.4     /// getProperty
205 mike  1.8     virtual CIMValue getProperty(
206 mike  1.1 	const String& nameSpace,
207 mike  1.8 	const CIMReference& instanceName,
208 mike  1.1 	const String& propertyName);
209 mike  1.6 
210 karl  1.4     /// setProperty
211 mike  1.1     virtual void setProperty(
212           	const String& nameSpace,
213 mike  1.8 	const CIMReference& instanceName,
214 mike  1.1 	const String& propertyName,
215 mike  1.8 	const CIMValue& newValue = CIMValue());
216 mike  1.6 
217 karl  1.4     /// getQualifier
218 mike  1.8     virtual CIMQualifierDecl getQualifier(
219 mike  1.1 	const String& nameSpace,
220           	const String& qualifierName);
221 mike  1.6 
222 karl  1.4     /// setQualifier
223 mike  1.1     virtual void setQualifier(
224           	const String& nameSpace,
225 mike  1.8 	const CIMQualifierDecl& qualifierDecl);
226 mike  1.6 
227 karl  1.4     /// virtual deleteQualifier
228 mike  1.1     virtual void deleteQualifier(
229           	const String& nameSpace,
230           	const String& qualifierName);
231 mike  1.6 
232 karl  1.4     /// enumerateQualifiers
233 mike  1.8     virtual Array<CIMQualifierDecl> enumerateQualifiers(
234 mike  1.1 	const String& nameSpace);
235 mike  1.6 
236 karl  1.4     /// Virtual value
237 mike  1.8     virtual CIMValue invokeMethod(
238 mike  1.1 	const String& nameSpace,
239 mike  1.8 	const CIMReference& instanceName,
240 mike  1.1 	const String& methodName,
241 mike  1.8 	const Array<CIMValue>& inParameters,
242           	Array<CIMValue>& outParameters);
243 mike  1.1 
244 mike  1.8     /** CIMMethod createNameSpace - Creates a new namespace in the repository
245 mike  1.6 	@param String with the name of the namespace
246           	@exception - ???
247           	ATTN: What happens if the namespace already exists.
248 karl  1.4     */
249 mike  1.1     void createNameSpace(const String& nameSpace);
250           
251 mike  1.8     /** CIMMethod enumerateNameSpaces - Get all of the namespaces in the
252 mike  1.6 	repository. \Ref{NAMESPACE}
253           	@return Array of strings with the namespaces
254 karl  1.4     */
255 mike  1.1     virtual Array<String> enumerateNameSpaces() const;
256 mike  1.2 
257 mike  1.8     /** CIMMethod createMetaQualifiers - ATTN:
258 mike  1.2 	This method must be invoked to create the appropriate meta-qualifiers
259           	required by CIM (they are not part of the CIM schema; rather they are
260           	part of the meta-schema).
261               */
262               void createMetaQualifiers(const String& nameSpace);
263 mike  1.1 
264           private:
265           
266               String _root;
267               RepositoryDeclContext* _context;
268           };
269           
270           PEGASUS_NAMESPACE_END
271           
272           #endif /* PegasusRepository_Repository_h */
273 karl  1.4 

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2