1 a.dunfey 1.9.8.1 //%2006////////////////////////////////////////////////////////////////////////
|
2 schuur 1.1 //
|
3 karl 1.5 // 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 schuur 1.1 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.5 // 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.7 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 a.dunfey 1.9.8.1 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
13 schuur 1.1 //
14 // Permission is hereby granted, free of charge, to any person obtaining a copy
15 // of this software and associated documentation files (the "Software"), to
16 // deal in the Software without restriction, including without limitation the
17 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
18 // sell copies of the Software, and to permit persons to whom the Software is
19 // furnished to do so, subject to the following conditions:
|
20 a.dunfey 1.9.8.1 //
|
21 schuur 1.1 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
22 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
23 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
25 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
27 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30 //==============================================================================
31 //
32 // Author: Chip Vincent (cvincent@us.ibm.com)
33 //
|
34 chip 1.8 // Modified By:
35 // Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
36 // Dave Rosckes (rosckes@us.ibm.com)
37 // Brian G. Campbell, EMC (campbell_brian@emc.com) - PEP140/phase2
|
38 schuur 1.1 //
39 //%/////////////////////////////////////////////////////////////////////////////
40
41 #ifndef Pegasus_SimpleResponseHandler_h
42 #define Pegasus_SimpleResponseHandler_h
43
44 #include <Pegasus/Common/Config.h>
45 #include <Pegasus/Common/ResponseHandler.h>
46
47 #include <Pegasus/ProviderManager2/Linkage.h>
48
49 PEGASUS_NAMESPACE_BEGIN
50
|
51 kumpf 1.3 //
52 // ValueResponseHandler (used internally to implement property operations)
53 //
54 class PEGASUS_PPM_LINKAGE ValueResponseHandler : virtual public ResponseHandler
55 {
56 public:
57 virtual void deliver(const CIMValue & value) = 0;
58
59 virtual void deliver(const Array<CIMValue> & values) = 0;
60 };
61
62
63 //
64 // SimpleResponseHandler
65 //
|
66 schuur 1.1 class PEGASUS_PPM_LINKAGE SimpleResponseHandler : virtual public ResponseHandler
67 {
68 public:
|
69 chip 1.9 SimpleResponseHandler(void);
70 virtual ~SimpleResponseHandler(void);
|
71 schuur 1.1
|
72 chip 1.9 virtual void processing(void);
73
74 virtual void complete(void);
|
75 schuur 1.1
|
76 chip 1.8 // return the number of objects in this handler
|
77 chip 1.9 virtual Uint32 size(void) const;
|
78 brian.campbell 1.6
|
79 chip 1.8 // clear any objects in this handler
|
80 chip 1.9 virtual void clear(void);
|
81 brian.campbell 1.6
|
82 a.dunfey 1.9.8.1 ContentLanguageList getLanguages(void);
|
83 schuur 1.1
|
84 brian.campbell 1.6 protected:
|
85 chip 1.8 virtual void send(Boolean isComplete);
|
86 schuur 1.1
87 };
88
89 class PEGASUS_PPM_LINKAGE SimpleInstanceResponseHandler : public SimpleResponseHandler, public InstanceResponseHandler
90 {
91 public:
|
92 chip 1.9 SimpleInstanceResponseHandler(void);
93
94 virtual void processing(void);
95
96 virtual void complete(void);
97
98 virtual Uint32 size(void) const;
99
100 virtual void clear(void);
101
102 virtual void deliver(const CIMInstance & instance);
103
104 virtual void deliver(const Array<CIMInstance> & instances);
105
106 const Array<CIMInstance> getObjects(void) const;
|
107 schuur 1.1
108 private:
109 Array<CIMInstance> _objects;
110
111 };
112
113 class PEGASUS_PPM_LINKAGE SimpleObjectPathResponseHandler : public SimpleResponseHandler, public ObjectPathResponseHandler
114 {
115 public:
|
116 chip 1.9 SimpleObjectPathResponseHandler(void);
117
118 virtual void processing(void);
119
120 virtual void complete(void);
121
122 virtual Uint32 size(void) const;
123
124 virtual void clear(void);
125
126 virtual void deliver(const CIMObjectPath & objectPath);
127
128 virtual void deliver(const Array<CIMObjectPath> & objectPaths);
129
130 const Array<CIMObjectPath> getObjects(void) const;
|
131 schuur 1.1
132 private:
133 Array<CIMObjectPath> _objects;
134
135 };
136
137 class PEGASUS_PPM_LINKAGE SimpleMethodResultResponseHandler : public SimpleResponseHandler, public MethodResultResponseHandler
138 {
139 public:
|
140 chip 1.9 SimpleMethodResultResponseHandler(void);
141
142 virtual void processing(void);
143
144 virtual void complete(void);
|
145 chip 1.8
146 // NOTE: this is the total size (count) of ALL parameters!
|
147 chip 1.9 virtual Uint32 size(void) const;
148
149 virtual void clear(void);
150
151 virtual void deliverParamValue(const CIMParamValue & outParamValue);
152
153 virtual void deliverParamValue(const Array<CIMParamValue> & outParamValues);
154
155 virtual void deliver(const CIMValue & returnValue);
156
157 const Array<CIMParamValue> getParamValues(void) const;
158
159 const CIMValue getReturnValue(void) const;
|
160 schuur 1.1
161 private:
162 Array<CIMParamValue> _objects;
163
164 CIMValue _returnValue;
165
166 };
167
168 class PEGASUS_PPM_LINKAGE SimpleIndicationResponseHandler : public SimpleResponseHandler, public IndicationResponseHandler
169 {
170 public:
|
171 chip 1.9 SimpleIndicationResponseHandler(void);
172
173 virtual void processing(void);
174
175 virtual void complete(void);
176
177 virtual Uint32 size(void) const;
178
179 virtual void clear(void);
180
181 virtual void deliver(const CIMIndication & indication);
182
183 virtual void deliver(const Array<CIMIndication> & indications);
|
184 schuur 1.1
185 virtual void deliver(
186 const OperationContext & context,
|
187 chip 1.9 const CIMIndication & indication);
|
188 schuur 1.1
189 virtual void deliver(
190 const OperationContext & context,
|
191 chip 1.9 const Array<CIMIndication> & indications);
192
193 const Array<CIMIndication> getObjects(void) const;
|
194 schuur 1.1
|
195 chip 1.8 // ATTN: why is this variable public?
|
196 schuur 1.1 CIMInstance _provider;
197
198 private:
199 Array<CIMIndication> _objects;
200
201 };
202
203 class PEGASUS_PPM_LINKAGE SimpleObjectResponseHandler : public SimpleResponseHandler, public ObjectResponseHandler
204 {
205 public:
|
206 chip 1.9 SimpleObjectResponseHandler(void);
207
208 virtual void processing(void);
209
210 virtual void complete(void);
211
212 virtual Uint32 size(void) const;
213
214 virtual void clear(void);
215
216 virtual void deliver(const CIMObject & object);
217
218 virtual void deliver(const Array<CIMObject> & objects);
219
220 const Array<CIMObject> getObjects(void) const;
|
221 schuur 1.1
222 private:
223 Array<CIMObject> _objects;
224
225 };
226
227 class PEGASUS_PPM_LINKAGE SimpleInstance2ObjectResponseHandler : public SimpleResponseHandler, public InstanceResponseHandler
228 {
229 public:
|
230 chip 1.9 SimpleInstance2ObjectResponseHandler(void);
231
232 virtual void processing(void);
233
234 virtual void complete(void);
235
236 virtual Uint32 size(void) const;
237
238 virtual void clear(void);
239
240 virtual void deliver(const CIMInstance & object);
241
242 virtual void deliver(const Array<CIMInstance> & objects);
243
244 const Array<CIMObject> getObjects(void) const;
|
245 schuur 1.1
246 private:
247 Array<CIMObject> _objects;
248
249 };
250
251 class PEGASUS_PPM_LINKAGE SimpleValueResponseHandler : public SimpleResponseHandler, public ValueResponseHandler
252 {
253 public:
|
254 chip 1.9 SimpleValueResponseHandler(void);
255
256 virtual void processing(void);
257
258 virtual void complete(void);
259
260 virtual Uint32 size(void) const;
261
262 virtual void clear(void);
263
264 virtual void deliver(const CIMValue & value);
265
266 virtual void deliver(const Array<CIMValue> & values);
267
268 const Array<CIMValue> getObjects(void) const;
|
269 schuur 1.1
270 private:
271 Array<CIMValue> _objects;
272
273 };
274
275 PEGASUS_NAMESPACE_END
276
277 #endif
|