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

  1 karl  1.10 //%2006////////////////////////////////////////////////////////////////////////
  2 kumpf 1.1  //
  3 karl  1.5  // 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.3  // IBM Corp.; EMC Corporation, The Open Group.
  7 karl  1.5  // 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.6  // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 10            // EMC Corporation; VERITAS Software Corporation; The Open Group.
 11 karl  1.10 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 12            // EMC Corporation; Symantec Corporation; The Open Group.
 13 kumpf 1.1  //
 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            // 
 21            // 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 kumpf 1.1  // Modified By: Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
 35            //              Nag Boranna, Hewlett-Packard Company (nagaraja_boranna@hp.com)
 36            //              Jenny Yu, Hewlett-Packard Company (jenny_yu@hp.com)
 37            //              Sushma Fernandes, Hewlett-Packard Company 
 38            //              (sushma_fernandes@hp.com)
 39            //              Carol Ann Krug Graves, Hewlett-Packard Company
 40            //                (carolann_graves@hp.com)
 41 kumpf 1.2  //				Jair Santos, Hewlett-Packard Company (jair.santos@hp.com)
 42 a.arora 1.4  //              Amit K Arora, IBM (amita@in.ibm.com) for PEP#101
 43 mateus.baur 1.7  //				Mateus Baur, Hewlett-Packard Company (mateus.baur@hp.com)
 44 kumpf       1.1  //
 45                  //%/////////////////////////////////////////////////////////////////////////////
 46                  
 47                  #ifndef Pegasus_CIMOperationRequestDecoder_h
 48                  #define Pegasus_CIMOperationRequestDecoder_h
 49                  
 50                  #include <Pegasus/Common/Config.h>
 51                  #include <Pegasus/Common/MessageQueueService.h>
 52                  #include <Pegasus/Common/CIMMessage.h>
 53                  #include <Pegasus/Common/HTTPMessage.h>
 54 kumpf       1.9  #include <Pegasus/Common/AcceptLanguageList.h>
 55                  #include <Pegasus/Common/ContentLanguageList.h>
 56 a.arora     1.4  #include <Pegasus/Common/AutoPtr.h>
 57 kumpf       1.1  
 58                  PEGASUS_NAMESPACE_BEGIN
 59                  
 60                  class XmlParser;
 61                  
 62                  /** This class decodes CIM operation requests and passes them down-stream.
 63                   */
 64                  class CIMOperationRequestDecoder : public MessageQueueService
 65                  {
 66                     public:
 67                        typedef MessageQueueService Base;
 68                      
 69                        CIMOperationRequestDecoder(
 70                  	 MessageQueueService* outputQueue,
 71                  	 Uint32 returnQueueId);
 72                  
 73                        ~CIMOperationRequestDecoder();
 74                  
 75                        void sendResponse(
 76                  	 Uint32 queueId, 
 77 mike        1.8  	 Buffer& message);
 78 kumpf       1.1  
 79                        void sendIMethodError(
 80                  	 Uint32 queueId, 
 81                           HttpMethod httpMethod,
 82                  	 const String& messageId,
 83                  	 const String& methodName,
 84                  	 const CIMException& cimException);
 85                  
 86                        void sendMethodError(
 87                  	 Uint32 queueId, 
 88                           HttpMethod httpMethod,
 89                  	 const String& messageId,
 90                  	 const String& methodName,
 91                  	 const CIMException& cimException);
 92                  
 93                        void sendHttpError(
 94                  	 Uint32 queueId, 
 95                  	 const String& status,
 96                  	 const String& cimError = String::EMPTY,
 97                  	 const String& messageBody = String::EMPTY);
 98                  
 99 kumpf       1.1        virtual void handleEnqueue(Message *);
100                  
101                        virtual void handleEnqueue();
102                  
103                        void handleHTTPMessage(HTTPMessage* httpMessage);
104                  
105 kumpf       1.2  // l10n
106 kumpf       1.1        void handleMethodCall(
107                  	 Uint32 queueId,
108                           HttpMethod httpMethod,
109 mateus.baur 1.7  	 char* content,
110 kumpf       1.1           Uint32 contentLength,
111                  	 const String& cimProtocolVersionInHeader,
112                  	 const String& cimMethodInHeader,
113                  	 const String& cimObjectInHeader,
114                  	 String authType,
115                  	 String userName,
116 kumpf       1.2  	 String password,
117 kumpf       1.9  	 const AcceptLanguageList& httpAcceptLanguages,
118                  	 const ContentLanguageList& httpContentLanguages);
119 kumpf       1.1  
120                        CIMCreateClassRequestMessage* decodeCreateClassRequest(
121                  	 Uint32 queueId,
122                  	 XmlParser& parser, 
123                  	 const String& messageId,
124                  	 const CIMNamespaceName& nameSpace,
125                  	 const String& authType,
126                  	 const String& userName);
127 kumpf       1.2  
128 kumpf       1.1  
129                        CIMGetClassRequestMessage* decodeGetClassRequest(
130                  	 Uint32 queueId,
131                  	 XmlParser& parser, 
132                  	 const String& messageId,
133                  	 const CIMNamespaceName& nameSpace,
134                  	 const String& authType,
135                  	 const String& userName);
136                  
137                        CIMModifyClassRequestMessage* decodeModifyClassRequest(
138                  	 Uint32 queueId,
139                  	 XmlParser& parser, 
140                  	 const String& messageId,
141                  	 const CIMNamespaceName& nameSpace,
142                  	 const String& authType,
143                  	 const String& userName);
144                  
145                        CIMEnumerateClassNamesRequestMessage* decodeEnumerateClassNamesRequest(
146                  	 Uint32 queueId,
147                  	 XmlParser& parser, 
148                  	 const String& messageId,
149 kumpf       1.1  	 const CIMNamespaceName& nameSpace,
150                  	 const String& authType,
151                  	 const String& userName);
152                  
153                        CIMEnumerateClassesRequestMessage* decodeEnumerateClassesRequest(
154                  	 Uint32 queueId,
155                  	 XmlParser& parser, 
156                  	 const String& messageId,
157                  	 const CIMNamespaceName& nameSpace,
158                  	 const String& authType,
159                  	 const String& userName);
160                  
161                        CIMDeleteClassRequestMessage* decodeDeleteClassRequest(
162                  	 Uint32 queueId,
163                  	 XmlParser& parser, 
164                  	 const String& messageId,
165                  	 const CIMNamespaceName& nameSpace,
166                  	 const String& authType,
167                  	 const String& userName);
168                  
169                        CIMCreateInstanceRequestMessage* decodeCreateInstanceRequest(
170 kumpf       1.1  	 Uint32 queueId,
171                  	 XmlParser& parser, 
172                  	 const String& messageId,
173                  	 const CIMNamespaceName& nameSpace,
174                  	 const String& authType,
175                  	 const String& userName);
176                  
177                        CIMGetInstanceRequestMessage* decodeGetInstanceRequest(
178                  	 Uint32 queueId,
179                  	 XmlParser& parser, 
180                  	 const String& messageId,
181                  	 const CIMNamespaceName& nameSpace,
182                  	 const String& authType,
183                  	 const String& userName);
184                  
185                        CIMModifyInstanceRequestMessage* decodeModifyInstanceRequest(
186                  	 Uint32 queueId,
187                  	 XmlParser& parser, 
188                  	 const String& messageId,
189                  	 const CIMNamespaceName& nameSpace,
190                  	 const String& authType,
191 kumpf       1.1  	 const String& userName);
192                  
193                        CIMEnumerateInstanceNamesRequestMessage* decodeEnumerateInstanceNamesRequest(
194                  	 Uint32 queueId,
195                  	 XmlParser& parser, 
196                  	 const String& messageId,
197                  	 const CIMNamespaceName& nameSpace,
198                  	 const String& authType,
199                  	 const String& userName);
200                  
201                        CIMEnumerateInstancesRequestMessage* decodeEnumerateInstancesRequest(
202                  	 Uint32 queueId,
203                  	 XmlParser& parser, 
204                  	 const String& messageId,
205                  	 const CIMNamespaceName& nameSpace,
206                  	 const String& authType,
207                  	 const String& userName);
208                  
209                        CIMDeleteInstanceRequestMessage* decodeDeleteInstanceRequest(
210                  	 Uint32 queueId,
211                  	 XmlParser& parser, 
212 kumpf       1.1  	 const String& messageId,
213                  	 const CIMNamespaceName& nameSpace,
214                  	 const String& authType,
215                  	 const String& userName);
216                  
217                        CIMSetQualifierRequestMessage* decodeSetQualifierRequest(
218                  	 Uint32 queueId,
219                  	 XmlParser& parser, 
220                  	 const String& messageId,
221                  	 const CIMNamespaceName& nameSpace,
222                  	 const String& authType,
223                  	 const String& userName);
224                  
225                        CIMGetQualifierRequestMessage* decodeGetQualifierRequest(
226                  	 Uint32 queueId,
227                  	 XmlParser& parser, 
228                  	 const String& messageId,
229                  	 const CIMNamespaceName& nameSpace,
230                  	 const String& authType,
231                  	 const String& userName);
232                  
233 kumpf       1.1        CIMEnumerateQualifiersRequestMessage* decodeEnumerateQualifiersRequest(
234                  	 Uint32 queueId,
235                  	 XmlParser& parser, 
236                  	 const String& messageId,
237                  	 const CIMNamespaceName& nameSpace,
238                  	 const String& authType,
239                  	 const String& userName);
240                  
241                        CIMDeleteQualifierRequestMessage* decodeDeleteQualifierRequest(
242                  	 Uint32 queueId,
243                  	 XmlParser& parser, 
244                  	 const String& messageId,
245                  	 const CIMNamespaceName& nameSpace,
246                  	 const String& authType,
247                  	 const String& userName);
248                  
249                        CIMReferenceNamesRequestMessage* decodeReferenceNamesRequest(
250                  	 Uint32 queueId,
251                  	 XmlParser& parser, 
252                  	 const String& messageId,
253                  	 const CIMNamespaceName& nameSpace,
254 kumpf       1.1  	 const String& authType,
255                  	 const String& userName);
256                  
257                        CIMReferencesRequestMessage* decodeReferencesRequest(
258                  	 Uint32 queueId,
259                  	 XmlParser& parser, 
260                  	 const String& messageId,
261                  	 const CIMNamespaceName& nameSpace,
262                  	 const String& authType,
263                  	 const String& userName);
264                  
265                        CIMAssociatorNamesRequestMessage* decodeAssociatorNamesRequest(
266                  	 Uint32 queueId,
267                  	 XmlParser& parser, 
268                  	 const String& messageId,
269                  	 const CIMNamespaceName& nameSpace,
270                  	 const String& authType,
271                  	 const String& userName);
272                  
273                        CIMAssociatorsRequestMessage* decodeAssociatorsRequest(
274                  	 Uint32 queueId,
275 kumpf       1.1  	 XmlParser& parser, 
276                  	 const String& messageId,
277                  	 const CIMNamespaceName& nameSpace,
278                  	 const String& authType,
279                  	 const String& userName);
280                  
281                        CIMGetPropertyRequestMessage* decodeGetPropertyRequest(
282                  	 Uint32 queueId,
283                  	 XmlParser& parser, 
284                  	 const String& messageId,
285                  	 const CIMNamespaceName& nameSpace,
286                  	 const String& authType,
287                  	 const String& userName);
288                  
289                        CIMSetPropertyRequestMessage* decodeSetPropertyRequest(
290                  	 Uint32 queueId,
291                  	 XmlParser& parser, 
292                  	 const String& messageId,
293                  	 const CIMNamespaceName& nameSpace,
294                  	 const String& authType,
295                  	 const String& userName);
296 kumpf       1.1  
297                        CIMExecQueryRequestMessage* decodeExecQueryRequest(
298                  	 Uint32 queueId,
299                  	 XmlParser& parser, 
300                  	 const String& messageId,
301                  	 const CIMNamespaceName& nameSpace,
302                  	 const String& authType,
303                  	 const String& userName);
304                  
305                        CIMInvokeMethodRequestMessage* decodeInvokeMethodRequest(
306                  	 Uint32 queueId,
307                  	 XmlParser& parser, 
308                  	 const String& messageId,
309                  	 const CIMObjectPath& reference,
310                  	 const String& cimMethodName,
311                  	 const String& authType,
312                  	 const String& userName);
313                          
314                        /** Sets the flag to indicate whether or not the CIMServer is 
315                  	  shutting down.
316                        */
317 kumpf       1.1        void setServerTerminating(Boolean flag);
318                  
319                     private:
320                  
321 a.arora     1.4        AutoPtr<MessageQueueService> _outputQueue; //PEP101
322 kumpf       1.1  
323                        // Queue where responses should be enqueued.
324                        Uint32 _returnQueueId;
325                  
326                        // Flag to indicate whether or not the CIMServer is shutting down.
327                        Boolean _serverTerminating;
328                  };
329                  
330                  PEGASUS_NAMESPACE_END
331                  
332                  #endif /* Pegasus_CIMOperationRequestDecoder_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2