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

  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 */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2