(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.6 // Revision 1.5  2001/02/08 00:31:51  mike
 27           // Clean up on Operations class.
 28           // Reformmatted documentation.
 29           //
 30 mike  1.5 // Revision 1.4  2001/02/06 17:04:03  karl
 31           // add documentation
 32           //
 33 karl  1.4 // Revision 1.3  2001/01/31 08:20:51  mike
 34           // Added dispatcher framework.
 35           // Added enumerateInstanceNames.
 36           //
 37 mike  1.3 // Revision 1.2  2001/01/28 04:11:03  mike
 38           // fixed qualifier resolution
 39           //
 40 mike  1.2 // Revision 1.1.1.1  2001/01/14 19:53:56  mike
 41           // Pegasus import
 42           //
 43 mike  1.1 //
 44           //END_HISTORY
 45           
 46           ////////////////////////////////////////////////////////////////////////////////
 47           //
 48           // Repository.h
 49           //
 50 karl  1.4 //	This interface contains a method for each operation defined in
 51 mike  1.1 // 	the "Specification for CIM Operations over HTTP".
 52           //
 53           ////////////////////////////////////////////////////////////////////////////////
 54           
 55           #ifndef PegasusRepository_Repository_h
 56           #define PegasusRepository_Repository_h
 57           
 58           #include <Pegasus/Common/Config.h>
 59           #include <Pegasus/Common/ClassDecl.h>
 60           #include <Pegasus/Common/InstanceDecl.h>
 61           #include <Pegasus/Common/QualifierDecl.h>
 62           #include <Pegasus/Common/Operations.h>
 63           
 64           PEGASUS_NAMESPACE_BEGIN
 65           
 66           class RepositoryDeclContext;
 67 karl  1.4 /** Class Repository - This class represents the repository interfaces.
 68           This class is derived from the Pegasus Operations interface adding certain
 69           methods specifically required for the repository.
 70           */
 71 mike  1.1 
 72           class PEGASUS_REPOSITORY_LINKAGE Repository : public Operations
 73           {
 74           public:
 75 mike  1.6 
 76 karl  1.4     /// Constructor
 77 mike  1.1     Repository(const String& path);
 78 mike  1.6 
 79 karl  1.4     /// Descructor
 80 mike  1.1     virtual ~Repository();
 81 mike  1.6 
 82 karl  1.4     /// virtual class ClassDecl. From the operations class
 83 mike  1.1     virtual ClassDecl getClass(
 84           	const String& nameSpace,
 85           	const String& className,
 86           	Boolean localOnly = true,
 87           	Boolean includeQualifiers = true,
 88           	Boolean includeClassOrigin = false,
 89           	const Array<String>& propertyList = _getStringArray());
 90 mike  1.6 
 91 karl  1.4     /// getInstance
 92 mike  1.1     virtual InstanceDecl getInstance(
 93           	const String& nameSpace,
 94           	const Reference& instanceName,
 95           	Boolean localOnly = true,
 96           	Boolean includeQualifiers = false,
 97           	Boolean includeClassOrigin = false,
 98           	const Array<String>& propertyList = _getStringArray());
 99 mike  1.6 
100 karl  1.4     /// deleteClass
101 mike  1.1     virtual void deleteClass(
102           	const String& nameSpace,
103           	const String& className);
104 mike  1.6 
105 karl  1.4     /// deleteInstance
106 mike  1.1     virtual void deleteInstance(
107           	const String& nameSpace,
108           	const Reference& instanceName);
109 mike  1.6 
110 karl  1.4     /// createClass
111 mike  1.1     virtual void createClass(
112           	const String& nameSpace,
113           	ClassDecl& newClass);
114 mike  1.6 
115 karl  1.4     /// createInstance
116 mike  1.1     virtual void createInstance(
117           	const String& nameSpace,
118 mike  1.5 	const InstanceDecl& newInstance);
119 mike  1.6 
120 mike  1.1     virtual void modifyClass(
121           	const String& nameSpace,
122           	ClassDecl& modifiedClass);
123 mike  1.6 
124 karl  1.4     /// modifyInstance
125 mike  1.1     virtual void modifyInstance(
126           	const String& nameSpace,
127           	const InstanceDecl& modifiedInstance);
128 mike  1.6 
129 karl  1.4     /// enumerateClasses
130 mike  1.1     virtual Array<ClassDecl> enumerateClasses(
131           	const String& nameSpace,
132           	const String& className = String::EMPTY,
133           	Boolean deepInheritance = false,
134           	Boolean localOnly = true,
135           	Boolean includeQualifiers  = true,
136           	Boolean includeClassOrigin = false);
137 mike  1.6 
138 karl  1.4     /// enumerateClassNames
139 mike  1.1     virtual Array<String> enumerateClassNames(
140           	const String& nameSpace,
141           	const String& className = String::EMPTY,
142           	Boolean deepInheritance = false);
143 mike  1.6 
144 karl  1.4     /// enumerateInstances
145 mike  1.1     virtual Array<InstanceDecl> enumerateInstances(
146           	const String& nameSpace,
147           	const String& className,
148           	Boolean deepInheritance = true,
149           	Boolean localOnly = true,
150           	Boolean includeQualifiers = false,
151           	Boolean includeClassOrigin = false,
152           	const Array<String>& propertyList = _getStringArray());
153 mike  1.6 
154 karl  1.4     /// enumerateInstanceNames
155 mike  1.3     virtual Array<Reference> enumerateInstanceNames(
156 mike  1.1 	const String& nameSpace,
157           	const String& className);
158 mike  1.6 
159 karl  1.4     /// execQuery
160 mike  1.1     virtual Array<InstanceDecl> execQuery(
161           	const String& queryLanguage,
162           	const String& query) ;
163 mike  1.6 
164 karl  1.4     /// associators
165 mike  1.1     virtual Array<InstanceDecl> associators(
166           	const String& nameSpace,
167           	const Reference& objectName,
168           	const String& assocClass = String::EMPTY,
169           	const String& resultClass = String::EMPTY,
170           	const String& role = String::EMPTY,
171           	const String& resultRole = String::EMPTY,
172           	Boolean includeQualifiers = false,
173           	Boolean includeClassOrigin = false,
174           	const Array<String>& propertyList = _getStringArray());
175 mike  1.6 
176 karl  1.4     /// associateNames
177 mike  1.1     virtual Array<Reference> associatorNames(
178           	const String& nameSpace,
179           	const Reference& objectName,
180           	const String& assocClass = String::EMPTY,
181           	const String& resultClass = String::EMPTY,
182           	const String& role = String::EMPTY,
183           	const String& resultRole = String::EMPTY);
184 mike  1.6 
185 karl  1.4     /// references
186 mike  1.1     virtual Array<InstanceDecl> references(
187           	const String& nameSpace,
188           	const Reference& objectName,
189           	const String& resultClass = String::EMPTY,
190           	const String& role = String::EMPTY,
191           	Boolean includeQualifiers = false,
192           	Boolean includeClassOrigin = false,
193           	const Array<String>& propertyList = _getStringArray());
194 mike  1.6 
195 karl  1.4     /// referenceNames
196 mike  1.1     virtual Array<Reference> referenceNames(
197           	const String& nameSpace,
198           	const Reference& objectName,
199           	const String& resultClass = String::EMPTY,
200           	const String& role = String::EMPTY);
201 mike  1.6 
202 karl  1.4     /// getProperty
203 mike  1.1     virtual Value getProperty(
204           	const String& nameSpace,
205           	const Reference& instanceName,
206           	const String& propertyName);
207 mike  1.6 
208 karl  1.4     /// setProperty
209 mike  1.1     virtual void setProperty(
210           	const String& nameSpace,
211           	const Reference& instanceName,
212           	const String& propertyName,
213           	const Value& newValue = Value());
214 mike  1.6 
215 karl  1.4     /// getQualifier
216 mike  1.1     virtual QualifierDecl getQualifier(
217           	const String& nameSpace,
218           	const String& qualifierName);
219 mike  1.6 
220 karl  1.4     /// setQualifier
221 mike  1.1     virtual void setQualifier(
222           	const String& nameSpace,
223           	const QualifierDecl& qualifierDecl);
224 mike  1.6 
225 karl  1.4     /// virtual deleteQualifier
226 mike  1.1     virtual void deleteQualifier(
227           	const String& nameSpace,
228           	const String& qualifierName);
229 mike  1.6 
230 karl  1.4     /// enumerateQualifiers
231 mike  1.1     virtual Array<QualifierDecl> enumerateQualifiers(
232           	const String& nameSpace);
233 mike  1.6 
234 karl  1.4     /// Virtual value
235 mike  1.1     virtual Value invokeMethod(
236           	const String& nameSpace,
237           	const Reference& instanceName,
238           	const String& methodName,
239           	const Array<Value>& inParameters,
240           	Array<Value>& outParameters);
241           
242 karl  1.4     /** Method createNameSpace - Creates a new namespace in the repository
243 mike  1.6 	@param String with the name of the namespace
244           	@exception - ???
245           	ATTN: What happens if the namespace already exists.
246 karl  1.4     */
247 mike  1.1     void createNameSpace(const String& nameSpace);
248           
249 karl  1.4     /** Method enumerateNameSpaces - Get all of the namespaces in the
250 mike  1.6 	repository. \Ref{NAMESPACE}
251           	@return Array of strings with the namespaces
252 karl  1.4     */
253 mike  1.1     virtual Array<String> enumerateNameSpaces() const;
254 mike  1.2 
255 karl  1.4     /** Method createMetaQualifiers - ATTN:
256 mike  1.2 	This method must be invoked to create the appropriate meta-qualifiers
257           	required by CIM (they are not part of the CIM schema; rather they are
258           	part of the meta-schema).
259               */
260               void createMetaQualifiers(const String& nameSpace);
261 mike  1.1 
262           private:
263           
264               static Array<String> _getStringArray()
265               {
266           	return Array<String>();
267               }
268           
269               String _root;
270               RepositoryDeclContext* _context;
271           };
272           
273           PEGASUS_NAMESPACE_END
274           
275           #endif /* PegasusRepository_Repository_h */
276 karl  1.4 

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2