1 karl 1.19 //%2006////////////////////////////////////////////////////////////////////////
|
2 mike 1.2 //
|
3 karl 1.13 // 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 karl 1.11 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.13 // 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.15 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.19 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
13 mike 1.2 //
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 kumpf 1.7 //
|
21 mike 1.2 // 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: Mike Brasher (mbrasher@bmc.com)
33 //
34 // Modified By: Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
35 // Nag Boranna, Hewlett-Packard Company (nagaraja_boranna@hp.com)
|
36 kumpf 1.12 // Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
|
37 w.white 1.14 // Willis White, IBM (whiwill@us.ibm.com)
|
38 j.alex 1.16 // John Alex, IBM (johnalex@us.ibm.com) - Bug#2290
|
39 mike 1.2 //
40 //%/////////////////////////////////////////////////////////////////////////////
41
42 #ifndef Pegasus_CIMOperationResponseDecoder_h
43 #define Pegasus_CIMOperationResponseDecoder_h
44
45 #include <fstream>
46 #include <Pegasus/Common/Config.h>
47 #include <Pegasus/Common/MessageQueue.h>
48 #include <Pegasus/Common/HTTPMessage.h>
49 #include <Pegasus/Common/CIMMessage.h>
|
50 kumpf 1.17 #include <Pegasus/Common/ContentLanguageList.h>
|
51 mike 1.2 #include <Pegasus/Client/ClientAuthenticator.h>
|
52 kumpf 1.5 #include <Pegasus/Client/CIMClientException.h>
|
53 mike 1.2 #include <Pegasus/Client/Linkage.h>
|
54 w.white 1.14 #include "ClientPerfDataStore.h"
55
|
56 mike 1.2
57 PEGASUS_NAMESPACE_BEGIN
58
59 class XmlParser;
|
60 kumpf 1.5
61 /**
62 This message is sent from the response decoder to the CIMClient, indicating
63 an error in issuing a CIM request.
64 */
|
65 mike 1.20 class PEGASUS_CLIENT_LINKAGE ClientExceptionMessage : public Message
|
66 kumpf 1.5 {
67 public:
|
68 kumpf 1.8 ClientExceptionMessage(Exception* clientException_)
|
69 kumpf 1.5 :
70 Message(CLIENT_EXCEPTION_MESSAGE),
71 clientException(clientException_)
72 {
73 }
74
|
75 kumpf 1.8 Exception* clientException;
|
76 kumpf 1.5 };
77
|
78 mike 1.2
79 /** This class receives HTTP messages and decodes them into CIM Operation
80 Responses messages which it places on its output queue.
81 */
82 class PEGASUS_CLIENT_LINKAGE CIMOperationResponseDecoder : public MessageQueue
83 {
84 public:
85
86 /** Constuctor.
87 @param outputQueue queue to receive decoded HTTP messages.
88 */
89 CIMOperationResponseDecoder(
90 MessageQueue* outputQueue,
91 MessageQueue* encoderQueue,
|
92 karl 1.10 ClientAuthenticator* authenticator,
93 Uint32 showInput);
|
94 mike 1.2
95 /** Destructor. */
96 ~CIMOperationResponseDecoder();
97
98 /** Initializes the encoder queue */
99 void setEncoderQueue(MessageQueue* encoderQueue);
100
101 /** This method is called when a message is enqueued on this queue. */
102 virtual void handleEnqueue();
103
|
104 a.dunfey 1.18 /**
105 * This methods gives the Decoder access to the ClientPerfDataStore that
106 * is in CIMClientRep. A pointer to the CIMClientRep::ClientPerfDataStore
107 * is passed in*/
108 void setDataStorePointer(ClientPerfDataStore* perfDataStore_ptr);
109
|
110 mike 1.2 private:
111
112 void _handleHTTPMessage(
113 HTTPMessage* message);
114
115 void _handleMethodResponse(
|
116 j.alex 1.16 char* content,
|
117 kumpf 1.17 const ContentLanguageList& contentLanguages,
|
118 j.alex 1.16 Boolean reconnect);
|
119 mike 1.2
120 CIMCreateClassResponseMessage* _decodeCreateClassResponse(
|
121 kumpf 1.12 XmlParser& parser,
122 const String& messageId,
123 Boolean isEmptyImethodresponseTag);
|
124 mike 1.2
125 CIMGetClassResponseMessage* _decodeGetClassResponse(
|
126 kumpf 1.12 XmlParser& parser,
127 const String& messageId,
128 Boolean isEmptyImethodresponseTag);
|
129 mike 1.2
130 CIMModifyClassResponseMessage* _decodeModifyClassResponse(
|
131 kumpf 1.12 XmlParser& parser,
132 const String& messageId,
133 Boolean isEmptyImethodresponseTag);
|
134 mike 1.2
135 CIMEnumerateClassNamesResponseMessage* _decodeEnumerateClassNamesResponse(
|
136 kumpf 1.12 XmlParser& parser,
137 const String& messageId,
138 Boolean isEmptyImethodresponseTag);
|
139 mike 1.2
140 CIMEnumerateClassesResponseMessage* _decodeEnumerateClassesResponse(
|
141 kumpf 1.12 XmlParser& parser,
142 const String& messageId,
143 Boolean isEmptyImethodresponseTag);
|
144 mike 1.2
145 CIMDeleteClassResponseMessage* _decodeDeleteClassResponse(
|
146 kumpf 1.12 XmlParser& parser,
147 const String& messageId,
148 Boolean isEmptyImethodresponseTag);
|
149 mike 1.2
150 CIMCreateInstanceResponseMessage* _decodeCreateInstanceResponse(
|
151 kumpf 1.12 XmlParser& parser,
152 const String& messageId,
153 Boolean isEmptyImethodresponseTag);
|
154 mike 1.2
155 CIMGetInstanceResponseMessage* _decodeGetInstanceResponse(
|
156 kumpf 1.12 XmlParser& parser,
157 const String& messageId,
158 Boolean isEmptyImethodresponseTag);
|
159 mike 1.2
160 CIMModifyInstanceResponseMessage* _decodeModifyInstanceResponse(
|
161 kumpf 1.12 XmlParser& parser,
162 const String& messageId,
163 Boolean isEmptyImethodresponseTag);
|
164 mike 1.2
165 CIMEnumerateInstanceNamesResponseMessage* _decodeEnumerateInstanceNamesResponse(
|
166 kumpf 1.12 XmlParser& parser,
167 const String& messageId,
168 Boolean isEmptyImethodresponseTag);
|
169 mike 1.2
170 CIMEnumerateInstancesResponseMessage* _decodeEnumerateInstancesResponse(
|
171 kumpf 1.12 XmlParser& parser,
172 const String& messageId,
173 Boolean isEmptyImethodresponseTag);
|
174 mike 1.2
175 CIMDeleteInstanceResponseMessage* _decodeDeleteInstanceResponse(
|
176 kumpf 1.12 XmlParser& parser,
177 const String& messageId,
178 Boolean isEmptyImethodresponseTag);
|
179 mike 1.2
180 CIMGetPropertyResponseMessage* _decodeGetPropertyResponse(
|
181 kumpf 1.12 XmlParser& parser,
182 const String& messageId,
183 Boolean isEmptyImethodresponseTag);
|
184 mike 1.2
185 CIMSetPropertyResponseMessage* _decodeSetPropertyResponse(
|
186 kumpf 1.12 XmlParser& parser,
187 const String& messageId,
188 Boolean isEmptyImethodresponseTag);
|
189 mike 1.2
190 CIMSetQualifierResponseMessage* _decodeSetQualifierResponse(
|
191 kumpf 1.12 XmlParser& parser,
192 const String& messageId,
193 Boolean isEmptyImethodresponseTag);
|
194 mike 1.2
195 CIMGetQualifierResponseMessage* _decodeGetQualifierResponse(
|
196 kumpf 1.12 XmlParser& parser,
197 const String& messageId,
198 Boolean isEmptyImethodresponseTag);
|
199 mike 1.2
200 CIMEnumerateQualifiersResponseMessage* _decodeEnumerateQualifiersResponse(
|
201 kumpf 1.12 XmlParser& parser,
202 const String& messageId,
203 Boolean isEmptyImethodresponseTag);
|
204 mike 1.2
205 CIMDeleteQualifierResponseMessage* _decodeDeleteQualifierResponse(
|
206 kumpf 1.12 XmlParser& parser,
207 const String& messageId,
208 Boolean isEmptyImethodresponseTag);
|
209 mike 1.2
210 CIMReferenceNamesResponseMessage* _decodeReferenceNamesResponse(
|
211 kumpf 1.12 XmlParser& parser,
212 const String& messageId,
213 Boolean isEmptyImethodresponseTag);
|
214 mike 1.2
215 CIMReferencesResponseMessage* _decodeReferencesResponse(
|
216 kumpf 1.12 XmlParser& parser,
217 const String& messageId,
218 Boolean isEmptyImethodresponseTag);
|
219 mike 1.2
220 CIMAssociatorNamesResponseMessage* _decodeAssociatorNamesResponse(
|
221 kumpf 1.12 XmlParser& parser,
222 const String& messageId,
223 Boolean isEmptyImethodresponseTag);
|
224 mike 1.2
225 CIMAssociatorsResponseMessage* _decodeAssociatorsResponse(
|
226 kumpf 1.12 XmlParser& parser,
227 const String& messageId,
228 Boolean isEmptyImethodresponseTag);
|
229 mike 1.2
|
230 kumpf 1.3 CIMExecQueryResponseMessage* _decodeExecQueryResponse(
|
231 kumpf 1.12 XmlParser& parser,
232 const String& messageId,
233 Boolean isEmptyImethodresponseTag);
|
234 kumpf 1.3
|
235 mike 1.2 CIMInvokeMethodResponseMessage* _decodeInvokeMethodResponse(
|
236 kumpf 1.12 XmlParser& parser,
237 const String& messageId,
238 const String& methodName,
239 Boolean isEmptyMethodresponseTag);
|
240 mike 1.2
241 MessageQueue* _outputQueue;
242
243 MessageQueue* _encoderQueue;
244
245 ClientAuthenticator* _authenticator;
|
246 karl 1.10
247 // Controls decoder client displays 1 = con, 2 = log display
248 Uint32 _showInput;
|
249 a.dunfey 1.18
250 ClientPerfDataStore* dataStore;
|
251 mike 1.2 };
252
253 PEGASUS_NAMESPACE_END
254
255 #endif /* Pegasus_CIMOperationResponseDecoder_h */
|