1 mike 1.1 //%/////////////////////////////////////////////////////////////////////////////
2 //
|
3 kumpf 1.5 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
4 // The Open Group, Tivoli Systems
|
5 mike 1.1 //
6 // Permission is hereby granted, free of charge, to any person obtaining a copy
7 // of this software and associated documentation files (the "Software"), to
8 // deal in the Software without restriction, including without limitation the
9 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10 // sell copies of the Software, and to permit persons to whom the Software is
11 // furnished to do so, subject to the following conditions:
|
12 kumpf 1.5 //
|
13 mike 1.1 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
14 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
15 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
16 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
17 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
19 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 //
22 //==============================================================================
23 //
24 // Author: Mike Brasher (mbrasher@bmc.com)
25 //
|
26 kumpf 1.3 // Modified By: Carol Ann Krug Graves, Hewlett-Packard Company
27 // (carolann_graves@hp.com)
28 //
|
29 mike 1.1 //%/////////////////////////////////////////////////////////////////////////////
30
31 #ifndef Pegasus_Common_RepositoryBase_h
32 #define Pegasus_Common_RepositoryBase_h
33
34 #include <Pegasus/Common/Config.h>
35 #include <Pegasus/Common/IPC.h>
36 #include <Pegasus/Common/CIMClass.h>
37 #include <Pegasus/Common/CIMObject.h>
38 #include <Pegasus/Common/CIMInstance.h>
39 #include <Pegasus/Common/CIMPropertyList.h>
40 #include <Pegasus/Common/CIMQualifierDecl.h>
41
42 PEGASUS_NAMESPACE_BEGIN
43
44 class RepositoryDeclContext;
45
46 /** This class declares the interface for a CIM repository implementation.
47
|
48 kumpf 1.6 CIMRepositoryBase is a pure virtual base class (all the method signatures
|
49 mike 1.1 must
50 */
|
51 kumpf 1.6 class CIMRepositoryBase
|
52 mike 1.1 {
53 public:
54
55 virtual ~CIMRepositoryBase() { }
56
57 virtual void read_lock(void) throw(IPCException) = 0;
58
59 virtual void read_unlock(void) = 0;
60
61 virtual void write_lock(void) throw(IPCException) = 0;
62
63 virtual void write_unlock(void) = 0;
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 mike 1.1 const CIMClass& newClass) = 0;
92
|
93 kumpf 1.2 virtual CIMObjectPath createInstance(
|
94 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
95 mike 1.1 const CIMInstance& newInstance) = 0;
96
97 virtual void modifyClass(
|
98 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
99 mike 1.1 const CIMClass& modifiedClass) = 0;
100
101 virtual void modifyInstance(
|
102 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
103 kumpf 1.3 const CIMInstance& modifiedInstance,
|
104 mike 1.1 Boolean includeQualifiers = true,
105 const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
106
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 mike 1.1 const CIMValue& newValue = CIMValue()) = 0;
181
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 mike 1.1 const CIMQualifierDecl& qualifierDecl) = 0;
189
190 virtual void deleteQualifier(
|
191 kumpf 1.7 const CIMNamespaceName& nameSpace,
192 const CIMName& qualifierName) = 0;
|
193 mike 1.1
194 virtual Array<CIMQualifierDecl> enumerateQualifiers(
|
195 kumpf 1.7 const CIMNamespaceName& nameSpace) = 0;
|
196 mike 1.1
|
197 kumpf 1.7 virtual void createNameSpace(const CIMNamespaceName& nameSpace) = 0;
|
198 mike 1.1
|
199 kumpf 1.7 virtual Array<CIMNamespaceName> enumerateNameSpaces() const = 0;
|
200 mike 1.1
|
201 kumpf 1.7 virtual void deleteNameSpace(const CIMNamespaceName& nameSpace) = 0;
|
202 mike 1.1
203 virtual void getSubClassNames(
|
204 kumpf 1.7 const CIMNamespaceName& nameSpaceName,
205 const CIMName& className,
|
206 mike 1.1 Boolean deepInheritance,
|
207 kumpf 1.7 Array<CIMName>& subClassNames) const = 0;
|
208 mike 1.1
209 virtual void getSuperClassNames(
|
210 kumpf 1.7 const CIMNamespaceName& nameSpaceName,
211 const CIMName& className,
212 Array<CIMName>& subClassNames) const = 0;
|
213 mike 1.1 };
214
215 PEGASUS_NAMESPACE_END
216
217 #endif /* Pegasus_Common_RepositoryBase_h */
|