(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            //%/////////////////////////////////////////////////////////////////////////////
 33            
 34            #ifndef Pegasus_CIMOperationResponseDecoder_h
 35            #define Pegasus_CIMOperationResponseDecoder_h
 36            
 37            #include <fstream>
 38            #include <Pegasus/Common/Config.h>
 39            #include <Pegasus/Common/MessageQueue.h>
 40            #include <Pegasus/Common/HTTPMessage.h>
 41            #include <Pegasus/Common/CIMMessage.h>
 42 kumpf 1.17 #include <Pegasus/Common/ContentLanguageList.h>
 43 mike  1.2  #include <Pegasus/Client/ClientAuthenticator.h>
 44 kumpf 1.5  #include <Pegasus/Client/CIMClientException.h>
 45 mike  1.2  #include <Pegasus/Client/Linkage.h>
 46 w.white 1.14 #include "ClientPerfDataStore.h"
 47              
 48 mike    1.2  
 49              PEGASUS_NAMESPACE_BEGIN
 50              
 51              class XmlParser;
 52 kumpf   1.5  
 53              /**
 54                  This message is sent from the response decoder to the CIMClient, indicating
 55                  an error in issuing a CIM request.
 56              */
 57 mike    1.20 class PEGASUS_CLIENT_LINKAGE ClientExceptionMessage : public Message
 58 kumpf   1.5  {
 59              public:
 60 kumpf   1.8      ClientExceptionMessage(Exception* clientException_)
 61 kumpf   1.5          :
 62                      Message(CLIENT_EXCEPTION_MESSAGE),
 63                      clientException(clientException_)
 64                  {
 65                  }
 66              
 67 kumpf   1.8      Exception* clientException;
 68 kumpf   1.5  };
 69              
 70 mike    1.2  
 71 kumpf   1.21 /** This class receives HTTP messages and decodes them into CIM Operation
 72 mike    1.2      Responses messages which it places on its output queue.
 73              */
 74              class PEGASUS_CLIENT_LINKAGE CIMOperationResponseDecoder : public MessageQueue
 75              {
 76              public:
 77              
 78                  /** Constuctor.
 79 kumpf   1.21         @param outputQueue queue to receive decoded HTTP messages.
 80 mike    1.2      */
 81 kumpf   1.21     CIMOperationResponseDecoder(
 82 mike    1.2          MessageQueue* outputQueue,
 83                      MessageQueue* encoderQueue,
 84 karl    1.10         ClientAuthenticator* authenticator,
 85                      Uint32 showInput);
 86 mike    1.2  
 87                  /** Destructor. */
 88                  ~CIMOperationResponseDecoder();
 89              
 90                  /** Initializes the encoder queue */
 91                  void setEncoderQueue(MessageQueue* encoderQueue);
 92              
 93                  /** This method is called when a message is enqueued on this queue. */
 94                  virtual void handleEnqueue();
 95              
 96 a.dunfey 1.18     /**
 97 kumpf    1.21         This methods gives the Decoder access to the ClientPerfDataStore that
 98                       is in CIMClientRep. A pointer to  the CIMClientRep::ClientPerfDataStore
 99                       is passed in
100                   */
101 a.dunfey 1.18     void setDataStorePointer(ClientPerfDataStore* perfDataStore_ptr);
102               
103 mike     1.2  private:
104               
105 kumpf    1.21     void _handleHTTPMessage(HTTPMessage* message);
106 mike     1.2  
107                   void _handleMethodResponse(
108 j.alex   1.16         char* content,
109 kumpf    1.17         const ContentLanguageList& contentLanguages,
110 j.alex   1.16         Boolean reconnect);
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