1 karl 1.7 //%2005////////////////////////////////////////////////////////////////////////
|
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 schuur 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 chip 1.8 //
|
19 schuur 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: Chip Vincent (cvincent@us.ibm.com)
31 //
|
32 chip 1.8 // Modified By:
33 // Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
34 // Dave Rosckes (rosckes@us.ibm.com)
35 // Brian G. Campbell, EMC (campbell_brian@emc.com) - PEP140/phase2
|
36 schuur 1.1 //
37 //%/////////////////////////////////////////////////////////////////////////////
38
39 #ifndef Pegasus_SimpleResponseHandler_h
40 #define Pegasus_SimpleResponseHandler_h
41
42 #include <Pegasus/Common/Config.h>
43 #include <Pegasus/Common/ResponseHandler.h>
44
45 #include <Pegasus/ProviderManager2/Linkage.h>
46
47 PEGASUS_NAMESPACE_BEGIN
48
|
49 kumpf 1.3 //
50 // ValueResponseHandler (used internally to implement property operations)
51 //
52 class PEGASUS_PPM_LINKAGE ValueResponseHandler : virtual public ResponseHandler
53 {
54 public:
55 virtual void deliver(const CIMValue & value) = 0;
56
57 virtual void deliver(const Array<CIMValue> & values) = 0;
58 };
59
60
61 //
62 // SimpleResponseHandler
63 //
|
64 schuur 1.1 class PEGASUS_PPM_LINKAGE SimpleResponseHandler : virtual public ResponseHandler
65 {
66 public:
|
67 chip 1.9 SimpleResponseHandler(void);
68 virtual ~SimpleResponseHandler(void);
|
69 schuur 1.1
|
70 chip 1.9 virtual void processing(void);
71
72 virtual void complete(void);
|
73 schuur 1.1
|
74 chip 1.8 // return the number of objects in this handler
|
75 chip 1.9 virtual Uint32 size(void) const;
|
76 brian.campbell 1.6
|
77 chip 1.8 // clear any objects in this handler
|
78 chip 1.9 virtual void clear(void);
|
79 brian.campbell 1.6
|
80 kumpf 1.10 ContentLanguageList getLanguages(void);
|
81 schuur 1.1
|
82 brian.campbell 1.6 protected:
|
83 chip 1.8 virtual void send(Boolean isComplete);
|
84 schuur 1.1
85 };
86
87 class PEGASUS_PPM_LINKAGE SimpleInstanceResponseHandler : public SimpleResponseHandler, public InstanceResponseHandler
88 {
89 public:
|
90 chip 1.9 SimpleInstanceResponseHandler(void);
91
92 virtual void processing(void);
93
94 virtual void complete(void);
95
96 virtual Uint32 size(void) const;
97
98 virtual void clear(void);
99
100 virtual void deliver(const CIMInstance & instance);
101
102 virtual void deliver(const Array<CIMInstance> & instances);
103
104 const Array<CIMInstance> getObjects(void) const;
|
105 schuur 1.1
106 private:
107 Array<CIMInstance> _objects;
108
109 };
110
111 class PEGASUS_PPM_LINKAGE SimpleObjectPathResponseHandler : public SimpleResponseHandler, public ObjectPathResponseHandler
112 {
113 public:
|
114 chip 1.9 SimpleObjectPathResponseHandler(void);
115
116 virtual void processing(void);
117
118 virtual void complete(void);
119
120 virtual Uint32 size(void) const;
121
122 virtual void clear(void);
123
124 virtual void deliver(const CIMObjectPath & objectPath);
125
126 virtual void deliver(const Array<CIMObjectPath> & objectPaths);
127
128 const Array<CIMObjectPath> getObjects(void) const;
|
129 schuur 1.1
130 private:
131 Array<CIMObjectPath> _objects;
132
133 };
134
135 class PEGASUS_PPM_LINKAGE SimpleMethodResultResponseHandler : public SimpleResponseHandler, public MethodResultResponseHandler
136 {
137 public:
|
138 chip 1.9 SimpleMethodResultResponseHandler(void);
139
140 virtual void processing(void);
141
142 virtual void complete(void);
|
143 chip 1.8
144 // NOTE: this is the total size (count) of ALL parameters!
|
145 chip 1.9 virtual Uint32 size(void) const;
146
147 virtual void clear(void);
148
149 virtual void deliverParamValue(const CIMParamValue & outParamValue);
150
151 virtual void deliverParamValue(const Array<CIMParamValue> & outParamValues);
152
153 virtual void deliver(const CIMValue & returnValue);
154
155 const Array<CIMParamValue> getParamValues(void) const;
156
157 const CIMValue getReturnValue(void) const;
|
158 schuur 1.1
159 private:
160 Array<CIMParamValue> _objects;
161
162 CIMValue _returnValue;
163
164 };
165
166 class PEGASUS_PPM_LINKAGE SimpleIndicationResponseHandler : public SimpleResponseHandler, public IndicationResponseHandler
167 {
168 public:
|
169 chip 1.9 SimpleIndicationResponseHandler(void);
170
171 virtual void processing(void);
172
173 virtual void complete(void);
174
175 virtual Uint32 size(void) const;
176
177 virtual void clear(void);
178
179 virtual void deliver(const CIMIndication & indication);
180
181 virtual void deliver(const Array<CIMIndication> & indications);
|
182 schuur 1.1
183 virtual void deliver(
184 const OperationContext & context,
|
185 chip 1.9 const CIMIndication & indication);
|
186 schuur 1.1
187 virtual void deliver(
188 const OperationContext & context,
|
189 chip 1.9 const Array<CIMIndication> & indications);
190
191 const Array<CIMIndication> getObjects(void) const;
|
192 schuur 1.1
|
193 chip 1.8 // ATTN: why is this variable public?
|
194 schuur 1.1 CIMInstance _provider;
195
196 private:
197 Array<CIMIndication> _objects;
198
199 };
200
201 class PEGASUS_PPM_LINKAGE SimpleObjectResponseHandler : public SimpleResponseHandler, public ObjectResponseHandler
202 {
203 public:
|
204 chip 1.9 SimpleObjectResponseHandler(void);
205
206 virtual void processing(void);
207
208 virtual void complete(void);
209
210 virtual Uint32 size(void) const;
211
212 virtual void clear(void);
213
214 virtual void deliver(const CIMObject & object);
215
216 virtual void deliver(const Array<CIMObject> & objects);
217
218 const Array<CIMObject> getObjects(void) const;
|
219 schuur 1.1
220 private:
221 Array<CIMObject> _objects;
222
223 };
224
225 class PEGASUS_PPM_LINKAGE SimpleInstance2ObjectResponseHandler : public SimpleResponseHandler, public InstanceResponseHandler
226 {
227 public:
|
228 chip 1.9 SimpleInstance2ObjectResponseHandler(void);
229
230 virtual void processing(void);
231
232 virtual void complete(void);
233
234 virtual Uint32 size(void) const;
235
236 virtual void clear(void);
237
238 virtual void deliver(const CIMInstance & object);
239
240 virtual void deliver(const Array<CIMInstance> & objects);
241
242 const Array<CIMObject> getObjects(void) const;
|
243 schuur 1.1
244 private:
245 Array<CIMObject> _objects;
246
247 };
248
249 class PEGASUS_PPM_LINKAGE SimpleValueResponseHandler : public SimpleResponseHandler, public ValueResponseHandler
250 {
251 public:
|
252 chip 1.9 SimpleValueResponseHandler(void);
253
254 virtual void processing(void);
255
256 virtual void complete(void);
257
258 virtual Uint32 size(void) const;
259
260 virtual void clear(void);
261
262 virtual void deliver(const CIMValue & value);
263
264 virtual void deliver(const Array<CIMValue> & values);
265
266 const Array<CIMValue> getObjects(void) const;
|
267 schuur 1.1
268 private:
269 Array<CIMValue> _objects;
270
271 };
272
273 PEGASUS_NAMESPACE_END
274
275 #endif
|