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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2