(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.10         ClientAuthenticator* authenticator,
 83                      Uint32 showInput);
 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                   MessageQueue*        _outputQueue;
235               
236                   MessageQueue*        _encoderQueue;
237               
238                   ClientAuthenticator* _authenticator;
239 karl     1.10 
240                   // Controls decoder client displays 1 = con, 2 = log display
241                   Uint32               _showInput;
242 a.dunfey 1.18 
243                   ClientPerfDataStore* dataStore;
244 mike     1.2  };
245               
246               PEGASUS_NAMESPACE_END
247               
248               #endif /* Pegasus_CIMOperationResponseDecoder_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2