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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2