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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2