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

  1 karl  1.16 //%2006////////////////////////////////////////////////////////////////////////
  2 mike  1.1  //
  3 karl  1.12 // 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 karl  1.8  // IBM Corp.; EMC Corporation, The Open Group.
  7 karl  1.12 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
  8            // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
  9 karl  1.13 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 10            // EMC Corporation; VERITAS Software Corporation; The Open Group.
 11 karl  1.16 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 12            // EMC Corporation; Symantec Corporation; The Open Group.
 13 mike  1.1  //
 14            // Permission is hereby granted, free of charge, to any person obtaining a copy
 15            // of this software and associated documentation files (the "Software"), to
 16            // deal in the Software without restriction, including without limitation the
 17            // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 18            // sell copies of the Software, and to permit persons to whom the Software is
 19            // furnished to do so, subject to the following conditions:
 20 kumpf 1.5  // 
 21 mike  1.1  // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 22            // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 23            // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 24            // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 25            // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 26            // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 27            // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 28            // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 29            //
 30            //==============================================================================
 31            //
 32            //%/////////////////////////////////////////////////////////////////////////////
 33            
 34            #ifndef Pegasus_Common_RepositoryBase_h
 35            #define Pegasus_Common_RepositoryBase_h
 36            
 37            #include <Pegasus/Common/Config.h>
 38 schuur 1.11 #include <Pegasus/Common/HashTable.h>
 39 mike   1.1  #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 kumpf  1.15 #include <Pegasus/Common/ContentLanguageList.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 kumpf  1.19     must be implemented).
 54 mike   1.1  */
 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 kumpf  1.19         const ContentLanguageList& contentLangs = ContentLanguageList()) = 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 kumpf  1.19         const ContentLanguageList& contentLangs = ContentLanguageList()) = 0;
 94 mike   1.1  
 95                 virtual void modifyClass(
 96 kumpf  1.7          const CIMNamespaceName& nameSpace,
 97 chuck  1.10         const CIMClass& modifiedClass,
 98 kumpf  1.19         const ContentLanguageList& contentLangs = ContentLanguageList()) = 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 kumpf  1.19         const ContentLanguageList& contentLangs = ContentLanguageList()) = 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.18     virtual Array<CIMInstance> enumerateInstancesForClass(
121 kumpf  1.7          const CIMNamespaceName& nameSpace,
122                     const CIMName& className,
123 mike   1.1          Boolean localOnly = true,
124                     Boolean includeQualifiers = false,
125                     Boolean includeClassOrigin = false,
126                     const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
127             
128 kumpf  1.18     virtual Array<CIMObjectPath> enumerateInstanceNamesForClass(
129 kumpf  1.7          const CIMNamespaceName& nameSpace,
130                     const CIMName& className) = 0;
131 mike   1.1  
132                 virtual Array<CIMInstance> execQuery(
133                     const String& queryLanguage,
134                     const String& query)  = 0;
135             
136 kumpf  1.4      virtual Array<CIMObject> associators(
137 kumpf  1.7          const CIMNamespaceName& nameSpace,
138 kumpf  1.2          const CIMObjectPath& objectName,
139 kumpf  1.7          const CIMName& assocClass = CIMName(),
140                     const CIMName& resultClass = CIMName(),
141 mike   1.1          const String& role = String::EMPTY,
142                     const String& resultRole = String::EMPTY,
143                     Boolean includeQualifiers = false,
144                     Boolean includeClassOrigin = false,
145                     const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
146             
147 kumpf  1.2      virtual Array<CIMObjectPath> associatorNames(
148 kumpf  1.7          const CIMNamespaceName& nameSpace,
149 kumpf  1.2          const CIMObjectPath& objectName,
150 kumpf  1.7          const CIMName& assocClass = CIMName(),
151                     const CIMName& resultClass = CIMName(),
152 mike   1.1          const String& role = String::EMPTY,
153                     const String& resultRole = String::EMPTY) = 0;
154             
155 kumpf  1.4      virtual Array<CIMObject> references(
156 kumpf  1.7          const CIMNamespaceName& nameSpace,
157 kumpf  1.2          const CIMObjectPath& objectName,
158 kumpf  1.7          const CIMName& resultClass = CIMName(),
159 mike   1.1          const String& role = String::EMPTY,
160                     Boolean includeQualifiers = false,
161                     Boolean includeClassOrigin = false,
162                     const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
163             
164 kumpf  1.2      virtual Array<CIMObjectPath> referenceNames(
165 kumpf  1.7          const CIMNamespaceName& nameSpace,
166 kumpf  1.2          const CIMObjectPath& objectName,
167 kumpf  1.7          const CIMName& resultClass = CIMName(),
168 mike   1.1          const String& role = String::EMPTY) = 0;
169             
170                 virtual CIMValue getProperty(
171 kumpf  1.7          const CIMNamespaceName& nameSpace,
172 kumpf  1.2          const CIMObjectPath& instanceName,
173 kumpf  1.7          const CIMName& propertyName) = 0;
174 mike   1.1  
175                 virtual void setProperty(
176 kumpf  1.7          const CIMNamespaceName& nameSpace,
177 kumpf  1.2          const CIMObjectPath& instanceName,
178 kumpf  1.7          const CIMName& propertyName,
179 chuck  1.10         const CIMValue& newValue = CIMValue(),
180 kumpf  1.19         const ContentLanguageList& contentLangs = ContentLanguageList()) = 0;
181 mike   1.1  
182                 virtual CIMQualifierDecl getQualifier(
183 kumpf  1.7          const CIMNamespaceName& nameSpace,
184                     const CIMName& qualifierName) = 0;
185 mike   1.1  
186                 virtual void setQualifier(
187 kumpf  1.7          const CIMNamespaceName& nameSpace,
188 chuck  1.10         const CIMQualifierDecl& qualifierDecl,
189 kumpf  1.19         const ContentLanguageList& contentLangs = ContentLanguageList()) = 0;
190 mike   1.1  
191                 virtual void deleteQualifier(
192 kumpf  1.7          const CIMNamespaceName& nameSpace,
193                     const CIMName& qualifierName) = 0;
194 mike   1.1  
195                 virtual Array<CIMQualifierDecl> enumerateQualifiers(
196 kumpf  1.7          const CIMNamespaceName& nameSpace) = 0;
197 mike   1.1  
198 kumpf  1.19     typedef HashTable <String, String, EqualNoCaseFunc, HashLowerCaseFunc>
199                     NameSpaceAttributes;
200 schuur 1.11 
201 kumpf  1.19     virtual void createNameSpace(
202                     const CIMNamespaceName& nameSpace,
203                     const NameSpaceAttributes& attributes = NameSpaceAttributes()) = 0;
204 mike   1.1  
205 kumpf  1.7      virtual Array<CIMNamespaceName> enumerateNameSpaces() const = 0;
206 mike   1.1  
207 kumpf  1.7      virtual void deleteNameSpace(const CIMNamespaceName& nameSpace) = 0;
208 mike   1.1  
209 schuur 1.11     virtual Boolean getNameSpaceAttributes(const CIMNamespaceName& nameSpace,
210                     NameSpaceAttributes &attributes)=0;
211             
212 mike   1.1      virtual void getSubClassNames(
213 kumpf  1.7          const CIMNamespaceName& nameSpaceName,
214                     const CIMName& className,
215 mike   1.1          Boolean deepInheritance,
216 kumpf  1.7          Array<CIMName>& subClassNames) const = 0;
217 mike   1.1  
218                 virtual void getSuperClassNames(
219 kumpf  1.7          const CIMNamespaceName& nameSpaceName,
220                     const CIMName& className,
221                     Array<CIMName>& subClassNames) const = 0;
222 mike   1.1  };
223             
224             PEGASUS_NAMESPACE_END
225             
226             #endif /* Pegasus_Common_RepositoryBase_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2