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

  1 karl  1.8 //%2003////////////////////////////////////////////////////////////////////////
  2 mike  1.1 //
  3 karl  1.8 // Copyright (c) 2000, 2001, 2002  BMC Software, Hewlett-Packard Development
  4           // Company, L. P., IBM Corp., The Open Group, Tivoli Systems.
  5           // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.;
  6           // IBM Corp.; EMC Corporation, The Open Group.
  7 mike  1.1 //
  8           // Permission is hereby granted, free of charge, to any person obtaining a copy
  9           // of this software and associated documentation files (the "Software"), to
 10           // deal in the Software without restriction, including without limitation the
 11           // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 12           // sell copies of the Software, and to permit persons to whom the Software is
 13           // furnished to do so, subject to the following conditions:
 14 kumpf 1.5 // 
 15 mike  1.1 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 16           // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 17           // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 18           // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 19           // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 20           // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 21           // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 22           // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 23           //
 24           //==============================================================================
 25           //
 26           // Author: Mike Brasher (mbrasher@bmc.com)
 27           //
 28 kumpf 1.3 // Modified By: Carol Ann Krug Graves, Hewlett-Packard Company
 29           //                  (carolann_graves@hp.com)
 30           //
 31 mike  1.1 //%/////////////////////////////////////////////////////////////////////////////
 32           
 33           #ifndef Pegasus_Common_RepositoryBase_h
 34           #define Pegasus_Common_RepositoryBase_h
 35           
 36           #include <Pegasus/Common/Config.h>
 37 schuur 1.11 #include <Pegasus/Common/HashTable.h>
 38 mike   1.1  #include <Pegasus/Common/IPC.h>
 39             #include <Pegasus/Common/CIMClass.h>
 40             #include <Pegasus/Common/CIMObject.h>
 41             #include <Pegasus/Common/CIMInstance.h>
 42             #include <Pegasus/Common/CIMPropertyList.h>
 43             #include <Pegasus/Common/CIMQualifierDecl.h>
 44 chuck  1.10 #include <Pegasus/Common/ContentLanguages.h>
 45 mike   1.1  
 46             PEGASUS_NAMESPACE_BEGIN
 47             
 48             class RepositoryDeclContext;
 49             
 50             /** This class declares the interface for a CIM repository implementation.
 51             
 52 kumpf  1.6      CIMRepositoryBase is a pure virtual base class (all the method signatures
 53 mike   1.1      must 
 54             */
 55 kumpf  1.6  class CIMRepositoryBase
 56 mike   1.1  {
 57             public:
 58             
 59                 virtual ~CIMRepositoryBase() { }
 60             
 61                 virtual CIMClass getClass(
 62 kumpf  1.7          const CIMNamespaceName& nameSpace,
 63                     const CIMName& className,
 64 mike   1.1          Boolean localOnly = true,
 65                     Boolean includeQualifiers = true,
 66                     Boolean includeClassOrigin = false,
 67                     const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
 68             
 69                 virtual CIMInstance getInstance(
 70 kumpf  1.7          const CIMNamespaceName& nameSpace,
 71 kumpf  1.2          const CIMObjectPath& instanceName,
 72 mike   1.1          Boolean localOnly = true,
 73                     Boolean includeQualifiers = false,
 74                     Boolean includeClassOrigin = false,
 75                     const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
 76             
 77                 virtual void deleteClass(
 78 kumpf  1.7          const CIMNamespaceName& nameSpace,
 79                     const CIMName& className) = 0;
 80 mike   1.1  
 81                 virtual void deleteInstance(
 82 kumpf  1.7          const CIMNamespaceName& nameSpace,
 83 kumpf  1.2          const CIMObjectPath& instanceName) = 0;
 84 mike   1.1  
 85                 virtual void createClass(
 86 kumpf  1.7          const CIMNamespaceName& nameSpace,
 87 chuck  1.10         const CIMClass& newClass,
 88             	const ContentLanguages& contentLangs = ContentLanguages::EMPTY) = 0;
 89 mike   1.1  
 90 kumpf  1.2      virtual CIMObjectPath createInstance(
 91 kumpf  1.7          const CIMNamespaceName& nameSpace,
 92 chuck  1.10         const CIMInstance& newInstance,
 93             	const ContentLanguages& contentLangs = ContentLanguages::EMPTY) = 0;
 94 mike   1.1  
 95                 virtual void modifyClass(
 96 kumpf  1.7          const CIMNamespaceName& nameSpace,
 97 chuck  1.10         const CIMClass& modifiedClass,
 98             	const ContentLanguages& contentLangs = ContentLanguages::EMPTY) = 0;
 99 mike   1.1  
100                 virtual void modifyInstance(
101 kumpf  1.7          const CIMNamespaceName& nameSpace,
102 kumpf  1.3          const CIMInstance& modifiedInstance,
103 mike   1.1          Boolean includeQualifiers = true,
104 chuck  1.10         const CIMPropertyList& propertyList = CIMPropertyList(),
105             	const ContentLanguages& contentLangs = ContentLanguages::EMPTY) = 0;
106 mike   1.1  
107                 virtual Array<CIMClass> enumerateClasses(
108 kumpf  1.7          const CIMNamespaceName& nameSpace,
109                     const CIMName& className = CIMName(),
110 mike   1.1          Boolean deepInheritance = false,
111                     Boolean localOnly = true,
112                     Boolean includeQualifiers = true,
113                     Boolean includeClassOrigin = false) = 0;
114             
115 kumpf  1.7      virtual Array<CIMName> enumerateClassNames(
116                     const CIMNamespaceName& nameSpace,
117                     const CIMName& className = CIMName(),
118 mike   1.1          Boolean deepInheritance = false) = 0;
119             
120 kumpf  1.3      virtual Array<CIMInstance> enumerateInstances(
121 kumpf  1.7          const CIMNamespaceName& nameSpace,
122                     const CIMName& className,
123 mike   1.1          Boolean deepInheritance = true,
124                     Boolean localOnly = true,
125                     Boolean includeQualifiers = false,
126                     Boolean includeClassOrigin = false,
127                     const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
128             
129 kumpf  1.2      virtual Array<CIMObjectPath> enumerateInstanceNames(
130 kumpf  1.7          const CIMNamespaceName& nameSpace,
131                     const CIMName& className) = 0;
132 mike   1.1  
133                 virtual Array<CIMInstance> execQuery(
134                     const String& queryLanguage,
135                     const String& query)  = 0;
136             
137 kumpf  1.4      virtual Array<CIMObject> associators(
138 kumpf  1.7          const CIMNamespaceName& nameSpace,
139 kumpf  1.2          const CIMObjectPath& objectName,
140 kumpf  1.7          const CIMName& assocClass = CIMName(),
141                     const CIMName& resultClass = CIMName(),
142 mike   1.1          const String& role = String::EMPTY,
143                     const String& resultRole = String::EMPTY,
144                     Boolean includeQualifiers = false,
145                     Boolean includeClassOrigin = false,
146                     const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
147             
148 kumpf  1.2      virtual Array<CIMObjectPath> associatorNames(
149 kumpf  1.7          const CIMNamespaceName& nameSpace,
150 kumpf  1.2          const CIMObjectPath& objectName,
151 kumpf  1.7          const CIMName& assocClass = CIMName(),
152                     const CIMName& resultClass = CIMName(),
153 mike   1.1          const String& role = String::EMPTY,
154                     const String& resultRole = String::EMPTY) = 0;
155             
156 kumpf  1.4      virtual Array<CIMObject> references(
157 kumpf  1.7          const CIMNamespaceName& nameSpace,
158 kumpf  1.2          const CIMObjectPath& objectName,
159 kumpf  1.7          const CIMName& resultClass = CIMName(),
160 mike   1.1          const String& role = String::EMPTY,
161                     Boolean includeQualifiers = false,
162                     Boolean includeClassOrigin = false,
163                     const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
164             
165 kumpf  1.2      virtual Array<CIMObjectPath> referenceNames(
166 kumpf  1.7          const CIMNamespaceName& nameSpace,
167 kumpf  1.2          const CIMObjectPath& objectName,
168 kumpf  1.7          const CIMName& resultClass = CIMName(),
169 mike   1.1          const String& role = String::EMPTY) = 0;
170             
171                 virtual CIMValue getProperty(
172 kumpf  1.7          const CIMNamespaceName& nameSpace,
173 kumpf  1.2          const CIMObjectPath& instanceName,
174 kumpf  1.7          const CIMName& propertyName) = 0;
175 mike   1.1  
176                 virtual void setProperty(
177 kumpf  1.7          const CIMNamespaceName& nameSpace,
178 kumpf  1.2          const CIMObjectPath& instanceName,
179 kumpf  1.7          const CIMName& propertyName,
180 chuck  1.10         const CIMValue& newValue = CIMValue(),
181             	const ContentLanguages& contentLangs = ContentLanguages::EMPTY) = 0;
182 mike   1.1  
183                 virtual CIMQualifierDecl getQualifier(
184 kumpf  1.7          const CIMNamespaceName& nameSpace,
185                     const CIMName& qualifierName) = 0;
186 mike   1.1  
187                 virtual void setQualifier(
188 kumpf  1.7          const CIMNamespaceName& nameSpace,
189 chuck  1.10         const CIMQualifierDecl& qualifierDecl,
190             	const ContentLanguages& contentLangs = ContentLanguages::EMPTY) = 0;
191 mike   1.1  
192                 virtual void deleteQualifier(
193 kumpf  1.7          const CIMNamespaceName& nameSpace,
194                     const CIMName& qualifierName) = 0;
195 mike   1.1  
196                 virtual Array<CIMQualifierDecl> enumerateQualifiers(
197 kumpf  1.7          const CIMNamespaceName& nameSpace) = 0;
198 mike   1.1  
199 schuur 1.11     typedef HashTable <String, String, EqualNoCaseFunc, HashLowerCaseFunc> NameSpaceAttributes;
200             
201                 virtual void createNameSpace(const CIMNamespaceName& nameSpace,
202             	 const NameSpaceAttributes &attributes=NameSpaceAttributes()) = 0;
203 mike   1.1  
204 kumpf  1.7      virtual Array<CIMNamespaceName> enumerateNameSpaces() const = 0;
205 mike   1.1  
206 kumpf  1.7      virtual void deleteNameSpace(const CIMNamespaceName& nameSpace) = 0;
207 mike   1.1  
208 schuur 1.11     virtual Boolean getNameSpaceAttributes(const CIMNamespaceName& nameSpace,
209                     NameSpaceAttributes &attributes)=0;
210             
211 mike   1.1      virtual void getSubClassNames(
212 kumpf  1.7          const CIMNamespaceName& nameSpaceName,
213                     const CIMName& className,
214 mike   1.1          Boolean deepInheritance,
215 kumpf  1.7          Array<CIMName>& subClassNames) const = 0;
216 mike   1.1  
217                 virtual void getSuperClassNames(
218 kumpf  1.7          const CIMNamespaceName& nameSpaceName,
219                     const CIMName& className,
220                     Array<CIMName>& subClassNames) const = 0;
221 mike   1.1  };
222             
223             PEGASUS_NAMESPACE_END
224             
225             #endif /* Pegasus_Common_RepositoryBase_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2