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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2