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 #include <Pegasus/Common/IPC.h>
38 #include <Pegasus/Common/CIMClass.h>
39 #include <Pegasus/Common/CIMObject.h>
40 #include <Pegasus/Common/CIMInstance.h>
41 #include <Pegasus/Common/CIMPropertyList.h>
42 #include <Pegasus/Common/CIMQualifierDecl.h>
43
44 PEGASUS_NAMESPACE_BEGIN
45
46 class RepositoryDeclContext;
47
48 /** This class declares the interface for a CIM repository implementation.
49
|
50 kumpf 1.6 CIMRepositoryBase is a pure virtual base class (all the method signatures
|
51 mike 1.1 must
52 */
|
53 kumpf 1.6 class CIMRepositoryBase
|
54 mike 1.1 {
55 public:
56
57 virtual ~CIMRepositoryBase() { }
58
59 virtual void read_lock(void) throw(IPCException) = 0;
60
61 virtual void read_unlock(void) = 0;
62
63 virtual void write_lock(void) throw(IPCException) = 0;
64
65 virtual void write_unlock(void) = 0;
66
67 virtual CIMClass getClass(
|
68 kumpf 1.7 const CIMNamespaceName& nameSpace,
69 const CIMName& className,
|
70 mike 1.1 Boolean localOnly = true,
71 Boolean includeQualifiers = true,
72 Boolean includeClassOrigin = false,
73 const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
74
75 virtual CIMInstance getInstance(
|
76 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
77 kumpf 1.2 const CIMObjectPath& instanceName,
|
78 mike 1.1 Boolean localOnly = true,
79 Boolean includeQualifiers = false,
80 Boolean includeClassOrigin = false,
81 const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
82
83 virtual void deleteClass(
|
84 kumpf 1.7 const CIMNamespaceName& nameSpace,
85 const CIMName& className) = 0;
|
86 mike 1.1
87 virtual void deleteInstance(
|
88 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
89 kumpf 1.2 const CIMObjectPath& instanceName) = 0;
|
90 mike 1.1
91 virtual void createClass(
|
92 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
93 mike 1.1 const CIMClass& newClass) = 0;
94
|
95 kumpf 1.2 virtual CIMObjectPath createInstance(
|
96 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
97 mike 1.1 const CIMInstance& newInstance) = 0;
98
99 virtual void modifyClass(
|
100 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
101 mike 1.1 const CIMClass& modifiedClass) = 0;
102
103 virtual void modifyInstance(
|
104 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
105 kumpf 1.3 const CIMInstance& modifiedInstance,
|
106 mike 1.1 Boolean includeQualifiers = true,
107 const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
108
109 virtual Array<CIMClass> enumerateClasses(
|
110 kumpf 1.7 const CIMNamespaceName& nameSpace,
111 const CIMName& className = CIMName(),
|
112 mike 1.1 Boolean deepInheritance = false,
113 Boolean localOnly = true,
114 Boolean includeQualifiers = true,
115 Boolean includeClassOrigin = false) = 0;
116
|
117 kumpf 1.7 virtual Array<CIMName> enumerateClassNames(
118 const CIMNamespaceName& nameSpace,
119 const CIMName& className = CIMName(),
|
120 mike 1.1 Boolean deepInheritance = false) = 0;
121
|
122 kumpf 1.3 virtual Array<CIMInstance> enumerateInstances(
|
123 kumpf 1.7 const CIMNamespaceName& nameSpace,
124 const CIMName& className,
|
125 mike 1.1 Boolean deepInheritance = true,
126 Boolean localOnly = true,
127 Boolean includeQualifiers = false,
128 Boolean includeClassOrigin = false,
129 const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
130
|
131 kumpf 1.2 virtual Array<CIMObjectPath> enumerateInstanceNames(
|
132 kumpf 1.7 const CIMNamespaceName& nameSpace,
133 const CIMName& className) = 0;
|
134 mike 1.1
135 virtual Array<CIMInstance> execQuery(
136 const String& queryLanguage,
137 const String& query) = 0;
138
|
139 kumpf 1.4 virtual Array<CIMObject> associators(
|
140 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
141 kumpf 1.2 const CIMObjectPath& objectName,
|
142 kumpf 1.7 const CIMName& assocClass = CIMName(),
143 const CIMName& resultClass = CIMName(),
|
144 mike 1.1 const String& role = String::EMPTY,
145 const String& resultRole = String::EMPTY,
146 Boolean includeQualifiers = false,
147 Boolean includeClassOrigin = false,
148 const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
149
|
150 kumpf 1.2 virtual Array<CIMObjectPath> associatorNames(
|
151 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
152 kumpf 1.2 const CIMObjectPath& objectName,
|
153 kumpf 1.7 const CIMName& assocClass = CIMName(),
154 const CIMName& resultClass = CIMName(),
|
155 mike 1.1 const String& role = String::EMPTY,
156 const String& resultRole = String::EMPTY) = 0;
157
|
158 kumpf 1.4 virtual Array<CIMObject> references(
|
159 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
160 kumpf 1.2 const CIMObjectPath& objectName,
|
161 kumpf 1.7 const CIMName& resultClass = CIMName(),
|
162 mike 1.1 const String& role = String::EMPTY,
163 Boolean includeQualifiers = false,
164 Boolean includeClassOrigin = false,
165 const CIMPropertyList& propertyList = CIMPropertyList()) = 0;
166
|
167 kumpf 1.2 virtual Array<CIMObjectPath> referenceNames(
|
168 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
169 kumpf 1.2 const CIMObjectPath& objectName,
|
170 kumpf 1.7 const CIMName& resultClass = CIMName(),
|
171 mike 1.1 const String& role = String::EMPTY) = 0;
172
173 virtual CIMValue getProperty(
|
174 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
175 kumpf 1.2 const CIMObjectPath& instanceName,
|
176 kumpf 1.7 const CIMName& propertyName) = 0;
|
177 mike 1.1
178 virtual void setProperty(
|
179 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
180 kumpf 1.2 const CIMObjectPath& instanceName,
|
181 kumpf 1.7 const CIMName& propertyName,
|
182 mike 1.1 const CIMValue& newValue = CIMValue()) = 0;
183
184 virtual CIMQualifierDecl getQualifier(
|
185 kumpf 1.7 const CIMNamespaceName& nameSpace,
186 const CIMName& qualifierName) = 0;
|
187 mike 1.1
188 virtual void setQualifier(
|
189 kumpf 1.7 const CIMNamespaceName& nameSpace,
|
190 mike 1.1 const CIMQualifierDecl& qualifierDecl) = 0;
191
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 kumpf 1.7 virtual void createNameSpace(const CIMNamespaceName& nameSpace) = 0;
|
200 mike 1.1
|
201 kumpf 1.7 virtual Array<CIMNamespaceName> enumerateNameSpaces() const = 0;
|
202 mike 1.1
|
203 kumpf 1.7 virtual void deleteNameSpace(const CIMNamespaceName& nameSpace) = 0;
|
204 mike 1.1
205 virtual void getSubClassNames(
|
206 kumpf 1.7 const CIMNamespaceName& nameSpaceName,
207 const CIMName& className,
|
208 mike 1.1 Boolean deepInheritance,
|
209 kumpf 1.7 Array<CIMName>& subClassNames) const = 0;
|
210 mike 1.1
211 virtual void getSuperClassNames(
|
212 kumpf 1.7 const CIMNamespaceName& nameSpaceName,
213 const CIMName& className,
214 Array<CIMName>& subClassNames) const = 0;
|
215 mike 1.1 };
216
217 PEGASUS_NAMESPACE_END
218
219 #endif /* Pegasus_Common_RepositoryBase_h */
|