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 */
|