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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2