1 chip 1.1 //%/////////////////////////////////////////////////////////////////////////////
2 //
|
3 kumpf 1.12 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
4 // The Open Group, Tivoli Systems
|
5 chip 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 chip 1.13 //
|
13 chip 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: Chip Vincent (cvincent@us.ibm.com)
25 //
26 // Modified By: Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
27 // Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
28 //
29 //%/////////////////////////////////////////////////////////////////////////////
30
31 #ifndef Pegasus_ProviderFacade_h
32 #define Pegasus_ProviderFacade_h
33
34 chip 1.1 #include <Pegasus/Common/Config.h>
35
36 #include <Pegasus/Provider/CIMBaseProvider.h>
37 #include <Pegasus/Provider/CIMInstanceProvider.h>
38 #include <Pegasus/Provider/CIMClassProvider.h>
39 #include <Pegasus/Provider/CIMAssociationProvider.h>
40 #include <Pegasus/Provider/CIMPropertyProvider.h>
41 #include <Pegasus/Provider/CIMMethodProvider.h>
42 #include <Pegasus/Provider/CIMQueryProvider.h>
43 #include <Pegasus/Provider/CIMIndicationProvider.h>
44 #include <Pegasus/Provider/CIMIndicationConsumer.h>
|
45 kumpf 1.14 #include <Pegasus/Server/Linkage.h>
|
46 chip 1.1
47 PEGASUS_NAMESPACE_BEGIN
48
|
49 chip 1.4 // The ProviderModule class wraps a provider pointer extracted from a provider
50 // module to ensure it is complete and well behaved. So, regardless of the
51 // method supported by a "real" provider, it can be placed inside a reliable
52 // facade with a known interface.
|
53 chip 1.1 class PEGASUS_SERVER_LINKAGE ProviderFacade :
|
54 chip 1.6 public CIMInstanceProvider,
|
55 chip 1.5 public CIMClassProvider,
56 public CIMAssociationProvider,
57 public CIMPropertyProvider,
58 public CIMMethodProvider,
59 public CIMQueryProvider,
60 public CIMIndicationProvider,
61 public CIMIndicationConsumer
|
62 chip 1.1 {
63 public:
|
64 chip 1.5 ProviderFacade(CIMBaseProvider * provider);
65 virtual ~ProviderFacade(void);
|
66 chip 1.1
|
67 chip 1.5 // CIMBaseProvider interface
68 virtual void initialize(CIMOMHandle & cimom);
69 virtual void terminate(void);
70
71 // CIMInstanceProvider interface
72 virtual void getInstance(
|
73 chip 1.11 const OperationContext & context,
74 const CIMObjectPath & instanceReference,
75 const Uint32 flags,
76 const CIMPropertyList & propertyList,
77 ResponseHandler<CIMInstance> & handler);
|
78 chip 1.5
79 virtual void enumerateInstances(
|
80 chip 1.11 const OperationContext & context,
81 const CIMObjectPath & classReference,
82 const Uint32 flags,
83 const CIMPropertyList & propertyList,
84 ResponseHandler<CIMInstance> & handler);
|
85 chip 1.5
86 virtual void enumerateInstanceNames(
|
87 chip 1.11 const OperationContext & context,
88 const CIMObjectPath & classReference,
89 ResponseHandler<CIMObjectPath> & handler);
|
90 chip 1.5
91 virtual void modifyInstance(
|
92 chip 1.11 const OperationContext & context,
93 const CIMObjectPath & instanceReference,
94 const CIMInstance & instanceObject,
95 const Uint32 flags,
96 const CIMPropertyList & propertyList,
|
97 chip 1.13 ResponseHandler<void> & handler);
|
98 chip 1.5
99 virtual void createInstance(
|
100 chip 1.11 const OperationContext & context,
101 const CIMObjectPath & instanceReference,
102 const CIMInstance & instanceObject,
103 ResponseHandler<CIMObjectPath> & handler);
|
104 chip 1.5
105 virtual void deleteInstance(
|
106 chip 1.11 const OperationContext & context,
107 const CIMObjectPath & instanceReference,
|
108 chip 1.13 ResponseHandler<void> & handler);
|
109 chip 1.5
110 // CIMClassProvider interface
111 virtual void getClass(
|
112 chip 1.11 const OperationContext & context,
113 const CIMObjectPath & classReference,
114 const Uint32 flags,
115 const CIMPropertyList & propertyList,
116 ResponseHandler<CIMClass> & handler);
|
117 chip 1.5
118 virtual void enumerateClasses(
|
119 chip 1.11 const OperationContext & context,
120 const CIMObjectPath & classReference,
121 const Uint32 flags,
122 ResponseHandler<CIMClass> & handler);
|
123 chip 1.5
124 virtual void enumerateClassNames(
|
125 chip 1.11 const OperationContext & context,
126 const CIMObjectPath & classReference,
127 const Uint32 flags,
128 ResponseHandler<CIMObjectPath> & handler);
|
129 chip 1.5
130 virtual void modifyClass(
|
131 chip 1.11 const OperationContext & context,
132 const CIMObjectPath & classReference,
133 const CIMClass & classObject,
|
134 chip 1.13 ResponseHandler<void> & handler);
|
135 chip 1.5
136 virtual void createClass(
|
137 chip 1.11 const OperationContext & context,
138 const CIMObjectPath & classReference,
139 const CIMClass & classObject,
|
140 chip 1.13 ResponseHandler<void> & handler);
|
141 chip 1.5
142 virtual void deleteClass(
|
143 chip 1.11 const OperationContext & context,
144 const CIMObjectPath & classReference,
|
145 chip 1.13 ResponseHandler<void> & handler);
|
146 chip 1.5
147 // CIMAssociationProvider interface
148 virtual void associators(
|
149 chip 1.11 const OperationContext & context,
150 const CIMObjectPath & objectName,
151 const String & associationClass,
152 const String & resultClass,
153 const String & role,
154 const String & resultRole,
155 const Uint32 flags,
156 const CIMPropertyList & propertyList,
157 ResponseHandler<CIMObject> & handler);
|
158 chip 1.5
159 virtual void associatorNames(
|
160 chip 1.11 const OperationContext & context,
161 const CIMObjectPath & objectName,
162 const String & associationClass,
163 const String & resultClass,
164 const String & role,
165 const String & resultRole,
166 ResponseHandler<CIMObjectPath> & handler);
|
167 chip 1.5
168 virtual void references(
|
169 chip 1.11 const OperationContext & context,
170 const CIMObjectPath & objectName,
171 const String & resultClass,
172 const String & role,
173 const Uint32 flags,
174 const CIMPropertyList & propertyList,
175 ResponseHandler<CIMObject> & handler);
|
176 chip 1.5
177 virtual void referenceNames(
|
178 chip 1.11 const OperationContext & context,
179 const CIMObjectPath & objectName,
180 const String & resultClass,
181 const String & role,
182 ResponseHandler<CIMObjectPath> & handler);
|
183 chip 1.5
184 // CIMPropertyProvider interface
185 virtual void getProperty(
|
186 chip 1.11 const OperationContext & context,
187 const CIMObjectPath & instanceReference,
188 const String & propertyName,
189 ResponseHandler<CIMValue> & handler);
|
190 chip 1.5
191 virtual void setProperty(
|
192 chip 1.11 const OperationContext & context,
193 const CIMObjectPath & instanceReference,
194 const String & propertyName,
195 const CIMValue & newValue,
196 ResponseHandler<CIMValue> & handler);
|
197 chip 1.5
198 // CIMMethodProviderFacade
199 virtual void invokeMethod(
|
200 chip 1.11 const OperationContext & context,
201 const CIMObjectPath & objectReference,
202 const String & methodName,
203 const Array<CIMParamValue> & inParameters,
204 Array<CIMParamValue> & outParameters,
205 ResponseHandler<CIMValue> & handler);
|
206 chip 1.5
207 // CIMQueryProvider interface
208 virtual void executeQuery(
|
209 chip 1.11 const OperationContext & context,
210 const String & nameSpace,
211 const String & queryLanguage,
212 const String & query,
213 ResponseHandler<CIMObject> & handler);
|
214 chip 1.5
215 // CIMIndicationProvider interface
|
216 chip 1.8 virtual void enableIndications(
|
217 chip 1.11 ResponseHandler<CIMIndication> & handler);
|
218 chip 1.6
|
219 chip 1.8 virtual void disableIndications(void);
|
220 chip 1.6
221 virtual void createSubscription(
|
222 chip 1.11 const OperationContext & context,
223 const CIMObjectPath & subscriptionName,
224 const Array<CIMObjectPath> & classNames,
225 const CIMPropertyList & propertyList,
226 const Uint16 repeatNotificationPolicy);
|
227 chip 1.6
228 virtual void modifySubscription(
|
229 chip 1.11 const OperationContext & context,
230 const CIMObjectPath & subscriptionName,
231 const Array<CIMObjectPath> & classNames,
232 const CIMPropertyList & propertyList,
233 const Uint16 repeatNotificationPolicy);
|
234 chip 1.6
235 virtual void deleteSubscription(
|
236 chip 1.11 const OperationContext & context,
237 const CIMObjectPath & subscriptionName,
238 const Array<CIMObjectPath> & classNames);
|
239 chip 1.5
240 // CIMIndicationConsumer interface
241 virtual void handleIndication(
|
242 chip 1.11 const OperationContext & context,
243 const CIMInstance & indication,
|
244 chip 1.13 ResponseHandler<void> & handler)
|
245 chip 1.8 {
246 }
|
247 chip 1.5
248 virtual void handleIndication(
|
249 chip 1.11 const OperationContext & context,
250 const String & url,
251 const CIMInstance& indicationInstance)
|
252 chip 1.5 {
253 }
|
254 chip 1.1
255 protected:
|
256 chip 1.5 CIMBaseProvider * _provider;
|
257 chip 1.1
258 };
259
260 PEGASUS_NAMESPACE_END
261
262 #endif
|