1 mike 1.2 //%/////////////////////////////////////////////////////////////////////////////
2 //
|
3 kumpf 1.7 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
|
4 mike 1.2 // The Open Group, Tivoli Systems
5 //
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 kumpf 1.7 //
|
13 mike 1.2 // 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: Mike Brasher (mbrasher@bmc.com)
25 //
26 // Modified By: Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
27 //
28 // Nag Boranna, Hewlett-Packard Company (nagaraja_boranna@hp.com)
29 //
30 //%/////////////////////////////////////////////////////////////////////////////
31
32 #ifndef Pegasus_CIMOperationResponseDecoder_h
33 #define Pegasus_CIMOperationResponseDecoder_h
34 mike 1.2
35 #include <fstream>
36 #include <Pegasus/Common/Config.h>
37 #include <Pegasus/Common/MessageQueue.h>
38 #include <Pegasus/Common/HTTPMessage.h>
39 #include <Pegasus/Common/CIMMessage.h>
|
40 mday 1.8.12.1 #include <Pegasus/Common/ContentLanguages.h> // l10n
|
41 mike 1.2 #include <Pegasus/Client/ClientAuthenticator.h>
|
42 kumpf 1.5 #include <Pegasus/Client/CIMClientException.h>
|
43 mike 1.2 #include <Pegasus/Client/Linkage.h>
44
45 PEGASUS_NAMESPACE_BEGIN
46
47 class XmlParser;
|
48 kumpf 1.5
49 /**
50 This message is sent from the response decoder to the CIMClient, indicating
51 an error in issuing a CIM request.
52 */
53 class ClientExceptionMessage : public Message
54 {
55 public:
|
56 kumpf 1.8 ClientExceptionMessage(Exception* clientException_)
|
57 kumpf 1.5 :
58 Message(CLIENT_EXCEPTION_MESSAGE),
59 clientException(clientException_)
60 {
61 }
62
|
63 kumpf 1.8 Exception* clientException;
|
64 kumpf 1.5 };
65
|
66 mike 1.2
67 /** This class receives HTTP messages and decodes them into CIM Operation
68 Responses messages which it places on its output queue.
69 */
70 class PEGASUS_CLIENT_LINKAGE CIMOperationResponseDecoder : public MessageQueue
71 {
72 public:
73
74 /** Constuctor.
75 @param outputQueue queue to receive decoded HTTP messages.
76 */
77 CIMOperationResponseDecoder(
78 MessageQueue* outputQueue,
79 MessageQueue* encoderQueue,
|
80 mday 1.8.12.2 ClientAuthenticator* authenticator,
81 Uint32 showInput);
|
82 mike 1.2
83 /** Destructor. */
84 ~CIMOperationResponseDecoder();
85
86 /** Initializes the encoder queue */
87 void setEncoderQueue(MessageQueue* encoderQueue);
88
89 /** This method is called when a message is enqueued on this queue. */
90 virtual void handleEnqueue();
91
92 private:
93
94 void _handleHTTPMessage(
95 HTTPMessage* message);
96
97 void _handleMethodResponse(
|
98 mday 1.8.12.1 char* content,
99 const ContentLanguages& contentLanguages);
|
100 mike 1.2
101 CIMCreateClassResponseMessage* _decodeCreateClassResponse(
102 XmlParser& parser, const String& messageId);
103
104 CIMGetClassResponseMessage* _decodeGetClassResponse(
105 XmlParser& parser, const String& messageId);
106
107 CIMModifyClassResponseMessage* _decodeModifyClassResponse(
108 XmlParser& parser, const String& messageId);
109
110 CIMEnumerateClassNamesResponseMessage* _decodeEnumerateClassNamesResponse(
111 XmlParser& parser, const String& messageId);
112
113 CIMEnumerateClassesResponseMessage* _decodeEnumerateClassesResponse(
114 XmlParser& parser, const String& messageId);
115
116 CIMDeleteClassResponseMessage* _decodeDeleteClassResponse(
117 XmlParser& parser, const String& messageId);
118
119 CIMCreateInstanceResponseMessage* _decodeCreateInstanceResponse(
120 XmlParser& parser, const String& messageId);
121 mike 1.2
122 CIMGetInstanceResponseMessage* _decodeGetInstanceResponse(
123 XmlParser& parser, const String& messageId);
124
125 CIMModifyInstanceResponseMessage* _decodeModifyInstanceResponse(
126 XmlParser& parser, const String& messageId);
127
128 CIMEnumerateInstanceNamesResponseMessage* _decodeEnumerateInstanceNamesResponse(
129 XmlParser& parser, const String& messageId);
130
131 CIMEnumerateInstancesResponseMessage* _decodeEnumerateInstancesResponse(
132 XmlParser& parser, const String& messageId);
133
134 CIMDeleteInstanceResponseMessage* _decodeDeleteInstanceResponse(
135 XmlParser& parser, const String& messageId);
136
137 CIMGetPropertyResponseMessage* _decodeGetPropertyResponse(
138 XmlParser& parser, const String& messageId);
139
140 CIMSetPropertyResponseMessage* _decodeSetPropertyResponse(
141 XmlParser& parser, const String& messageId);
142 mike 1.2
143 CIMSetQualifierResponseMessage* _decodeSetQualifierResponse(
144 XmlParser& parser, const String& messageId);
145
146 CIMGetQualifierResponseMessage* _decodeGetQualifierResponse(
147 XmlParser& parser, const String& messageId);
148
149 CIMEnumerateQualifiersResponseMessage* _decodeEnumerateQualifiersResponse(
150 XmlParser& parser, const String& messageId);
151
152 CIMDeleteQualifierResponseMessage* _decodeDeleteQualifierResponse(
153 XmlParser& parser, const String& messageId);
154
155 CIMReferenceNamesResponseMessage* _decodeReferenceNamesResponse(
156 XmlParser& parser, const String& messageId);
157
158 CIMReferencesResponseMessage* _decodeReferencesResponse(
159 XmlParser& parser, const String& messageId);
160
161 CIMAssociatorNamesResponseMessage* _decodeAssociatorNamesResponse(
162 XmlParser& parser, const String& messageId);
163 mike 1.2
164 CIMAssociatorsResponseMessage* _decodeAssociatorsResponse(
165 XmlParser& parser, const String& messageId);
166
|
167 kumpf 1.3 CIMExecQueryResponseMessage* _decodeExecQueryResponse(
168 XmlParser& parser, const String& messageId);
169
|
170 mike 1.2 CIMInvokeMethodResponseMessage* _decodeInvokeMethodResponse(
171 XmlParser& parser, const String& messageId, const String& methodName);
172
173 MessageQueue* _outputQueue;
174
175 MessageQueue* _encoderQueue;
176
177 ClientAuthenticator* _authenticator;
|
178 mday 1.8.12.2
179 // Controls decoder client displays 1 = con, 2 = log display
180 Uint32 _showInput;
|
181 mike 1.2 };
182
183 PEGASUS_NAMESPACE_END
184
185 #endif /* Pegasus_CIMOperationResponseDecoder_h */
|