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

  1 karl  1.35 //%2006////////////////////////////////////////////////////////////////////////
  2 mike  1.2  //
  3 karl  1.28 // 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.26 // IBM Corp.; EMC Corporation, The Open Group.
  7 karl  1.28 // 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.30 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 10            // EMC Corporation; VERITAS Software Corporation; The Open Group.
 11 karl  1.35 // 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 kumpf 1.22 // 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 mike  1.2  // 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 ms.aruran 1.37.4.1 //
 21 kumpf     1.22     // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 22 mike      1.2      // 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 kumpf     1.22     // 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 mike      1.2      // 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_CIMOperationRequestDecoder_h
 35                    #define Pegasus_CIMOperationRequestDecoder_h
 36                    
 37                    #include <Pegasus/Common/Config.h>
 38 mday      1.5      #include <Pegasus/Common/MessageQueueService.h>
 39 mike      1.2      #include <Pegasus/Common/CIMMessage.h>
 40                    #include <Pegasus/Common/HTTPMessage.h>
 41 kumpf     1.34     #include <Pegasus/Common/AcceptLanguageList.h>
 42                    #include <Pegasus/Common/ContentLanguageList.h>
 43 a.arora   1.27     #include <Pegasus/Common/AutoPtr.h>
 44 mike      1.2      
 45                    PEGASUS_NAMESPACE_BEGIN
 46                    
 47                    class XmlParser;
 48                    
 49                    /** This class decodes CIM operation requests and passes them down-stream.
 50 mday      1.7       */
 51 mday      1.21     class CIMOperationRequestDecoder : public MessageQueueService
 52 mike      1.2      {
 53 mday      1.5         public:
 54 mday      1.21           typedef MessageQueueService Base;
 55 ms.aruran 1.37.4.1 
 56 mday      1.7            CIMOperationRequestDecoder(
 57 ms.aruran 1.37.4.1          MessageQueueService* outputQueue,
 58                             Uint32 returnQueueId);
 59 mday      1.7      
 60                          ~CIMOperationRequestDecoder();
 61                    
 62                          void sendResponse(
 63 ms.aruran 1.37.4.1          Uint32 queueId,
 64 mike      1.33              Buffer& message,
 65 j.alex    1.32              Boolean closeConnect = false);
 66 mday      1.7      
 67 kumpf     1.9            void sendIMethodError(
 68 ms.aruran 1.37.4.1          Uint32 queueId,
 69 kumpf     1.24              HttpMethod httpMethod,
 70 j.alex    1.32              const String& messageId,
 71                             const String& methodName,
 72                             const CIMException& cimException,
 73                             Boolean closeConnect = false);
 74 kumpf     1.9      
 75                          void sendMethodError(
 76 ms.aruran 1.37.4.1          Uint32 queueId,
 77 kumpf     1.24              HttpMethod httpMethod,
 78 j.alex    1.32              const String& messageId,
 79                             const String& methodName,
 80                             const CIMException& cimException,
 81                             Boolean closeConnect = false);
 82 mday      1.7      
 83 kumpf     1.15           void sendHttpError(
 84 ms.aruran 1.37.4.1          Uint32 queueId,
 85 j.alex    1.32              const String& status,
 86                             const String& cimError = String::EMPTY,
 87                             const String& messageBody = String::EMPTY,
 88                             Boolean closeConnect = false);
 89 kumpf     1.12     
 90 mday      1.7            virtual void handleEnqueue(Message *);
 91                    
 92                          virtual void handleEnqueue();
 93                    
 94                          void handleHTTPMessage(HTTPMessage* httpMessage);
 95                    
 96 chuck     1.25     // l10n
 97 mday      1.7            void handleMethodCall(
 98 j.alex    1.32              Uint32 queueId,
 99 kumpf     1.24              HttpMethod httpMethod,
100 j.alex    1.32              char* content,
101 sage      1.18              Uint32 contentLength,
102 j.alex    1.32              const String& cimProtocolVersionInHeader,
103                             const String& cimMethodInHeader,
104                             const String& cimObjectInHeader,
105 kumpf     1.37              const String& authType,
106                             const String& userName,
107                             const String& ipAddress,
108 kumpf     1.34              const AcceptLanguageList& httpAcceptLanguages,
109                             const ContentLanguageList& httpContentLanguages,
110 ms.aruran 1.37.4.1          Boolean closeConnect,
111                             Array<SSLCertificateInfo*> userCert);
112 mday      1.7      
113                          CIMCreateClassRequestMessage* decodeCreateClassRequest(
114 ms.aruran 1.37.4.1          Uint32 queueId,
115                             XmlParser& parser,
116                             const String& messageId,
117                             const CIMNamespaceName& nameSpace);
118 mday      1.7      
119                          CIMGetClassRequestMessage* decodeGetClassRequest(
120 ms.aruran 1.37.4.1          Uint32 queueId,
121                             XmlParser& parser,
122                             const String& messageId,
123                             const CIMNamespaceName& nameSpace);
124 mday      1.7      
125                          CIMModifyClassRequestMessage* decodeModifyClassRequest(
126 ms.aruran 1.37.4.1          Uint32 queueId,
127                             XmlParser& parser,
128                             const String& messageId,
129                             const CIMNamespaceName& nameSpace);
130 mday      1.7      
131                          CIMEnumerateClassNamesRequestMessage* decodeEnumerateClassNamesRequest(
132 ms.aruran 1.37.4.1          Uint32 queueId,
133                             XmlParser& parser,
134                             const String& messageId,
135                             const CIMNamespaceName& nameSpace);
136 mday      1.7      
137                          CIMEnumerateClassesRequestMessage* decodeEnumerateClassesRequest(
138 ms.aruran 1.37.4.1          Uint32 queueId,
139                             XmlParser& parser,
140                             const String& messageId,
141                             const CIMNamespaceName& nameSpace);
142 mday      1.7      
143                          CIMDeleteClassRequestMessage* decodeDeleteClassRequest(
144 ms.aruran 1.37.4.1          Uint32 queueId,
145                             XmlParser& parser,
146                             const String& messageId,
147                             const CIMNamespaceName& nameSpace);
148 mday      1.7      
149                          CIMCreateInstanceRequestMessage* decodeCreateInstanceRequest(
150 ms.aruran 1.37.4.1          Uint32 queueId,
151                             XmlParser& parser,
152                             const String& messageId,
153                             const CIMNamespaceName& nameSpace);
154 mday      1.7      
155                          CIMGetInstanceRequestMessage* decodeGetInstanceRequest(
156 ms.aruran 1.37.4.1          Uint32 queueId,
157                             XmlParser& parser,
158                             const String& messageId,
159                             const CIMNamespaceName& nameSpace);
160 mday      1.7      
161                          CIMModifyInstanceRequestMessage* decodeModifyInstanceRequest(
162 ms.aruran 1.37.4.1          Uint32 queueId,
163                             XmlParser& parser,
164                             const String& messageId,
165                             const CIMNamespaceName& nameSpace);
166 mday      1.7      
167                          CIMEnumerateInstanceNamesRequestMessage* decodeEnumerateInstanceNamesRequest(
168 ms.aruran 1.37.4.1          Uint32 queueId,
169                             XmlParser& parser,
170                             const String& messageId,
171                             const CIMNamespaceName& nameSpace);
172 mday      1.7      
173                          CIMEnumerateInstancesRequestMessage* decodeEnumerateInstancesRequest(
174 ms.aruran 1.37.4.1          Uint32 queueId,
175                             XmlParser& parser,
176                             const String& messageId,
177                             const CIMNamespaceName& nameSpace);
178 mday      1.7      
179                          CIMDeleteInstanceRequestMessage* decodeDeleteInstanceRequest(
180 ms.aruran 1.37.4.1          Uint32 queueId,
181                             XmlParser& parser,
182                             const String& messageId,
183                             const CIMNamespaceName& nameSpace);
184 mday      1.7      
185                          CIMSetQualifierRequestMessage* decodeSetQualifierRequest(
186 ms.aruran 1.37.4.1          Uint32 queueId,
187                             XmlParser& parser,
188                             const String& messageId,
189                             const CIMNamespaceName& nameSpace);
190 mday      1.7      
191                          CIMGetQualifierRequestMessage* decodeGetQualifierRequest(
192 ms.aruran 1.37.4.1          Uint32 queueId,
193                             XmlParser& parser,
194                             const String& messageId,
195                             const CIMNamespaceName& nameSpace);
196 mday      1.7      
197                          CIMEnumerateQualifiersRequestMessage* decodeEnumerateQualifiersRequest(
198 ms.aruran 1.37.4.1          Uint32 queueId,
199                             XmlParser& parser,
200                             const String& messageId,
201                             const CIMNamespaceName& nameSpace);
202 mday      1.7      
203                          CIMDeleteQualifierRequestMessage* decodeDeleteQualifierRequest(
204 ms.aruran 1.37.4.1          Uint32 queueId,
205                             XmlParser& parser,
206                             const String& messageId,
207                             const CIMNamespaceName& nameSpace);
208 mday      1.7      
209                          CIMReferenceNamesRequestMessage* decodeReferenceNamesRequest(
210 ms.aruran 1.37.4.1          Uint32 queueId,
211                             XmlParser& parser,
212                             const String& messageId,
213                             const CIMNamespaceName& nameSpace);
214 mday      1.7      
215                          CIMReferencesRequestMessage* decodeReferencesRequest(
216 ms.aruran 1.37.4.1          Uint32 queueId,
217                             XmlParser& parser,
218                             const String& messageId,
219                             const CIMNamespaceName& nameSpace);
220 mday      1.7      
221                          CIMAssociatorNamesRequestMessage* decodeAssociatorNamesRequest(
222 ms.aruran 1.37.4.1          Uint32 queueId,
223                             XmlParser& parser,
224                             const String& messageId,
225                             const CIMNamespaceName& nameSpace);
226 mday      1.7      
227                          CIMAssociatorsRequestMessage* decodeAssociatorsRequest(
228 ms.aruran 1.37.4.1          Uint32 queueId,
229                             XmlParser& parser,
230                             const String& messageId,
231                             const CIMNamespaceName& nameSpace);
232 mday      1.7      
233                          CIMGetPropertyRequestMessage* decodeGetPropertyRequest(
234 ms.aruran 1.37.4.1          Uint32 queueId,
235                             XmlParser& parser,
236                             const String& messageId,
237                             const CIMNamespaceName& nameSpace);
238 mday      1.7      
239                          CIMSetPropertyRequestMessage* decodeSetPropertyRequest(
240 ms.aruran 1.37.4.1          Uint32 queueId,
241                             XmlParser& parser,
242                             const String& messageId,
243                             const CIMNamespaceName& nameSpace);
244 mday      1.7      
245 kumpf     1.14           CIMExecQueryRequestMessage* decodeExecQueryRequest(
246 ms.aruran 1.37.4.1          Uint32 queueId,
247                             XmlParser& parser,
248                             const String& messageId,
249                             const CIMNamespaceName& nameSpace);
250 kumpf     1.14     
251 mday      1.7            CIMInvokeMethodRequestMessage* decodeInvokeMethodRequest(
252 ms.aruran 1.37.4.1          Uint32 queueId,
253                             XmlParser& parser,
254                             const String& messageId,
255                             const CIMObjectPath& reference,
256                             const String& cimMethodName);
257                    
258                          /** Sets the flag to indicate whether or not the CIMServer is
259                              shutting down.
260 mday      1.7            */
261                          void setServerTerminating(Boolean flag);
262                    
263                       private:
264 mike      1.2      
265 ms.aruran 1.37.4.1         //  Do not make _outputQueue an AutoPtr.
266                          MessageQueueService* _outputQueue;
267 mike      1.2      
268 mday      1.7            // Queue where responses should be enqueued.
269                          Uint32 _returnQueueId;
270 mike      1.2      
271 mday      1.7            // Flag to indicate whether or not the CIMServer is shutting down.
272                          Boolean _serverTerminating;
273 j.alex    1.32     
274 mike      1.2      };
275                    
276                    PEGASUS_NAMESPACE_END
277                    
278                    #endif /* Pegasus_CIMOperationRequestDecoder_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2