(file) Return to CIMOperationResponseDecoder.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Client

  1 martin 1.23 //%LICENSE////////////////////////////////////////////////////////////////
  2 martin 1.24 //
  3 martin 1.23 // Licensed to The Open Group (TOG) under one or more contributor license
  4             // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
  5             // this work for additional information regarding copyright ownership.
  6             // Each contributor licenses this file to you under the OpenPegasus Open
  7             // Source License; you may not use this file except in compliance with the
  8             // License.
  9 martin 1.24 //
 10 martin 1.23 // Permission is hereby granted, free of charge, to any person obtaining a
 11             // copy of this software and associated documentation files (the "Software"),
 12             // to deal in the Software without restriction, including without limitation
 13             // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 14             // and/or sell copies of the Software, and to permit persons to whom the
 15             // Software is furnished to do so, subject to the following conditions:
 16 martin 1.24 //
 17 martin 1.23 // The above copyright notice and this permission notice shall be included
 18             // in all copies or substantial portions of the Software.
 19 martin 1.24 //
 20 martin 1.23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 21 martin 1.24 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 22 martin 1.23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 23             // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 24             // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 25             // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 26             // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 27 martin 1.24 //
 28 martin 1.23 //////////////////////////////////////////////////////////////////////////
 29 mike   1.2  //
 30             //%/////////////////////////////////////////////////////////////////////////////
 31             
 32             #ifndef Pegasus_CIMOperationResponseDecoder_h
 33             #define Pegasus_CIMOperationResponseDecoder_h
 34             
 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 kumpf  1.17 #include <Pegasus/Common/ContentLanguageList.h>
 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 w.white 1.14 #include "ClientPerfDataStore.h"
 45              
 46 mike    1.2  
 47              PEGASUS_NAMESPACE_BEGIN
 48              
 49              class XmlParser;
 50 kumpf   1.5  
 51              /**
 52                  This message is sent from the response decoder to the CIMClient, indicating
 53                  an error in issuing a CIM request.
 54              */
 55 mike    1.20 class PEGASUS_CLIENT_LINKAGE ClientExceptionMessage : public Message
 56 kumpf   1.5  {
 57              public:
 58 kumpf   1.8      ClientExceptionMessage(Exception* clientException_)
 59 kumpf   1.5          :
 60                      Message(CLIENT_EXCEPTION_MESSAGE),
 61                      clientException(clientException_)
 62                  {
 63                  }
 64              
 65 kumpf   1.8      Exception* clientException;
 66 kumpf   1.5  };
 67              
 68 mike    1.2  
 69 kumpf   1.21 /** This class receives HTTP messages and decodes them into CIM Operation
 70 mike    1.2      Responses messages which it places on its output queue.
 71              */
 72              class PEGASUS_CLIENT_LINKAGE CIMOperationResponseDecoder : public MessageQueue
 73              {
 74              public:
 75              
 76                  /** Constuctor.
 77 kumpf   1.21         @param outputQueue queue to receive decoded HTTP messages.
 78 mike    1.2      */
 79 kumpf   1.21     CIMOperationResponseDecoder(
 80 mike    1.2          MessageQueue* outputQueue,
 81                      MessageQueue* encoderQueue,
 82 karl    1.25.8.3         ClientAuthenticator* authenticator
 83                          );
 84 mike    1.2      
 85                      /** Destructor. */
 86                      ~CIMOperationResponseDecoder();
 87                  
 88                      /** Initializes the encoder queue */
 89                      void setEncoderQueue(MessageQueue* encoderQueue);
 90                  
 91                      /** This method is called when a message is enqueued on this queue. */
 92                      virtual void handleEnqueue();
 93                  
 94 a.dunfey 1.18         /**
 95 kumpf    1.21             This methods gives the Decoder access to the ClientPerfDataStore that
 96                           is in CIMClientRep. A pointer to  the CIMClientRep::ClientPerfDataStore
 97                           is passed in
 98                       */
 99 a.dunfey 1.18         void setDataStorePointer(ClientPerfDataStore* perfDataStore_ptr);
100                   
101 mike     1.2      private:
102                   
103 kumpf    1.21         void _handleHTTPMessage(HTTPMessage* message);
104 mike     1.2      
105                       void _handleMethodResponse(
106 kumpf    1.25             const char* content,
107 mike     1.22             Uint32 contentLength,
108 kumpf    1.17             const ContentLanguageList& contentLanguages,
109 mike     1.22             Boolean reconnect,
110                           bool binaryResponse);
111 mike     1.2      
112                       CIMCreateClassResponseMessage* _decodeCreateClassResponse(
113 kumpf    1.12             XmlParser& parser,
114                           const String& messageId,
115                           Boolean isEmptyImethodresponseTag);
116 mike     1.2      
117                       CIMGetClassResponseMessage* _decodeGetClassResponse(
118 kumpf    1.12             XmlParser& parser,
119                           const String& messageId,
120                           Boolean isEmptyImethodresponseTag);
121 mike     1.2      
122                       CIMModifyClassResponseMessage* _decodeModifyClassResponse(
123 kumpf    1.12             XmlParser& parser,
124                           const String& messageId,
125                           Boolean isEmptyImethodresponseTag);
126 mike     1.2      
127                       CIMEnumerateClassNamesResponseMessage* _decodeEnumerateClassNamesResponse(
128 kumpf    1.12             XmlParser& parser,
129                           const String& messageId,
130                           Boolean isEmptyImethodresponseTag);
131 mike     1.2      
132                       CIMEnumerateClassesResponseMessage* _decodeEnumerateClassesResponse(
133 kumpf    1.12             XmlParser& parser,
134                           const String& messageId,
135                           Boolean isEmptyImethodresponseTag);
136 mike     1.2      
137                       CIMDeleteClassResponseMessage* _decodeDeleteClassResponse(
138 kumpf    1.12             XmlParser& parser,
139                           const String& messageId,
140                           Boolean isEmptyImethodresponseTag);
141 mike     1.2      
142                       CIMCreateInstanceResponseMessage* _decodeCreateInstanceResponse(
143 kumpf    1.12             XmlParser& parser,
144                           const String& messageId,
145                           Boolean isEmptyImethodresponseTag);
146 mike     1.2      
147                       CIMGetInstanceResponseMessage* _decodeGetInstanceResponse(
148 kumpf    1.12             XmlParser& parser,
149                           const String& messageId,
150                           Boolean isEmptyImethodresponseTag);
151 mike     1.2      
152                       CIMModifyInstanceResponseMessage* _decodeModifyInstanceResponse(
153 kumpf    1.12             XmlParser& parser,
154                           const String& messageId,
155                           Boolean isEmptyImethodresponseTag);
156 mike     1.2      
157 kumpf    1.21         CIMEnumerateInstanceNamesResponseMessage*
158                           _decodeEnumerateInstanceNamesResponse(
159                               XmlParser& parser,
160                               const String& messageId,
161                               Boolean isEmptyImethodresponseTag);
162 mike     1.2      
163                       CIMEnumerateInstancesResponseMessage* _decodeEnumerateInstancesResponse(
164 kumpf    1.12             XmlParser& parser,
165                           const String& messageId,
166                           Boolean isEmptyImethodresponseTag);
167 mike     1.2      
168                       CIMDeleteInstanceResponseMessage* _decodeDeleteInstanceResponse(
169 kumpf    1.12             XmlParser& parser,
170                           const String& messageId,
171                           Boolean isEmptyImethodresponseTag);
172 mike     1.2      
173                       CIMGetPropertyResponseMessage* _decodeGetPropertyResponse(
174 kumpf    1.12             XmlParser& parser,
175                           const String& messageId,
176                           Boolean isEmptyImethodresponseTag);
177 mike     1.2      
178                       CIMSetPropertyResponseMessage* _decodeSetPropertyResponse(
179 kumpf    1.12             XmlParser& parser,
180                           const String& messageId,
181                           Boolean isEmptyImethodresponseTag);
182 mike     1.2      
183                       CIMSetQualifierResponseMessage* _decodeSetQualifierResponse(
184 kumpf    1.12             XmlParser& parser,
185                           const String& messageId,
186                           Boolean isEmptyImethodresponseTag);
187 mike     1.2      
188                       CIMGetQualifierResponseMessage* _decodeGetQualifierResponse(
189 kumpf    1.12             XmlParser& parser,
190                           const String& messageId,
191                           Boolean isEmptyImethodresponseTag);
192 mike     1.2      
193                       CIMEnumerateQualifiersResponseMessage* _decodeEnumerateQualifiersResponse(
194 kumpf    1.12             XmlParser& parser,
195                           const String& messageId,
196                           Boolean isEmptyImethodresponseTag);
197 mike     1.2      
198                       CIMDeleteQualifierResponseMessage* _decodeDeleteQualifierResponse(
199 kumpf    1.12             XmlParser& parser,
200                           const String& messageId,
201                           Boolean isEmptyImethodresponseTag);
202 mike     1.2      
203                       CIMReferenceNamesResponseMessage* _decodeReferenceNamesResponse(
204 kumpf    1.12             XmlParser& parser,
205                           const String& messageId,
206                           Boolean isEmptyImethodresponseTag);
207 mike     1.2      
208                       CIMReferencesResponseMessage* _decodeReferencesResponse(
209 kumpf    1.12             XmlParser& parser,
210                           const String& messageId,
211                           Boolean isEmptyImethodresponseTag);
212 mike     1.2      
213                       CIMAssociatorNamesResponseMessage* _decodeAssociatorNamesResponse(
214 kumpf    1.12             XmlParser& parser,
215                           const String& messageId,
216                           Boolean isEmptyImethodresponseTag);
217 mike     1.2      
218                       CIMAssociatorsResponseMessage* _decodeAssociatorsResponse(
219 kumpf    1.12             XmlParser& parser,
220                           const String& messageId,
221                           Boolean isEmptyImethodresponseTag);
222 mike     1.2      
223 kumpf    1.3          CIMExecQueryResponseMessage* _decodeExecQueryResponse(
224 kumpf    1.12             XmlParser& parser,
225                           const String& messageId,
226                           Boolean isEmptyImethodresponseTag);
227 kumpf    1.3      
228 mike     1.2          CIMInvokeMethodResponseMessage* _decodeInvokeMethodResponse(
229 kumpf    1.12             XmlParser& parser,
230                           const String& messageId,
231                           const String& methodName,
232                           Boolean isEmptyMethodresponseTag);
233 mike     1.2      
234 karl     1.25.8.2 // EXP_PULL_BEGIN
235 karl     1.25.8.1     CIMOpenEnumerateInstancesResponseMessage*
236                           _decodeOpenEnumerateInstancesResponse(
237                               XmlParser& parser,
238                               const String& messageId,
239                               Boolean isEmptyImethodresponseTag);
240                   
241 karl     1.25.8.3     CIMOpenEnumerateInstancePathsResponseMessage*
242 karl     1.25.8.1         _decodeOpenEnumerateInstancePathsResponse(
243                               XmlParser& parser,
244                               const String& messageId,
245                               Boolean isEmptyImethodresponseTag);
246                   
247 karl     1.25.8.3     CIMOpenReferenceInstancesResponseMessage*
248 karl     1.25.8.1         _decodeOpenReferenceInstancesResponse(
249                               XmlParser& parser,
250                               const String& messageId,
251                               Boolean isEmptyImethodresponseTag);
252                   
253 karl     1.25.8.3     CIMOpenReferenceInstancePathsResponseMessage*
254 karl     1.25.8.1         _decodeOpenReferenceInstancePathsResponse(
255                               XmlParser& parser,
256                               const String& messageId,
257                               Boolean isEmptyImethodresponseTag);
258                   
259 karl     1.25.8.3     CIMOpenAssociatorInstancesResponseMessage*
260 karl     1.25.8.1         _decodeOpenAssociatorInstancesResponse(
261                               XmlParser& parser,
262                               const String& messageId,
263                               Boolean isEmptyImethodresponseTag);
264                   
265 karl     1.25.8.3     CIMOpenAssociatorInstancePathsResponseMessage*
266 karl     1.25.8.1         _decodeOpenAssociatorInstancePathsResponse(
267                               XmlParser& parser,
268                               const String& messageId,
269                               Boolean isEmptyImethodresponseTag);
270                   
271 karl     1.25.8.3     CIMPullInstancesWithPathResponseMessage*
272 karl     1.25.8.1         _decodePullInstancesWithPathResponse(
273                               XmlParser& parser,
274                               const String& messageId,
275                               Boolean isEmptyImethodresponseTag);
276                   
277 karl     1.25.8.3     CIMPullInstancePathsResponseMessage*
278 karl     1.25.8.1         _decodePullInstancePathsResponse(
279                               XmlParser& parser,
280                               const String& messageId,
281                               Boolean isEmptyImethodresponseTag);
282                   
283 karl     1.25.8.5     CIMPullInstancesResponseMessage*
284                           _decodePullInstancesResponse(
285                               XmlParser& parser,
286                               const String& messageId,
287                               Boolean isEmptyImethodresponseTag);
288                   
289 karl     1.25.8.1     CIMCloseEnumerationResponseMessage* _decodeCloseEnumerationResponse(
290                           XmlParser& parser,
291                           const String& messageId,
292                           Boolean isEmptyImethodresponseTag);
293                   
294                       CIMEnumerationCountResponseMessage* _decodeEnumerationCountResponse(
295                           XmlParser& parser,
296                           const String& messageId,
297                           Boolean isEmptyImethodresponseTag);
298 karl     1.25.8.4 
299                       CIMOpenQueryInstancesResponseMessage*
300                           _decodeOpenQueryInstancesResponse(
301                               XmlParser& parser,
302                               const String& messageId,
303                               Boolean isEmptyImethodresponseTag);
304 karl     1.25.8.2 // EXP_PULL END
305 karl     1.25.8.1 
306 mike     1.2          MessageQueue*        _outputQueue;
307                   
308                       MessageQueue*        _encoderQueue;
309                   
310                       ClientAuthenticator* _authenticator;
311 karl     1.10     
312 a.dunfey 1.18         ClientPerfDataStore* dataStore;
313 mike     1.2      };
314                   
315                   PEGASUS_NAMESPACE_END
316                   
317                   #endif /* Pegasus_CIMOperationResponseDecoder_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2