(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            //%/////////////////////////////////////////////////////////////////////////////
 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 mday    1.3      
 56 mday    1.7        CIMOperationRequestDecoder(
 57 mday    1.21 	 MessageQueueService* outputQueue,
 58 mday    1.7  	 Uint32 returnQueueId);
 59              
 60                    ~CIMOperationRequestDecoder();
 61              
 62                    void sendResponse(
 63 j.alex  1.32          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 j.alex  1.32          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 j.alex  1.32          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 j.alex  1.32          Uint32 queueId, 
 85                       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 j.alex  1.32          Boolean closeConnect);
111 mday    1.7  
112                    CIMCreateClassRequestMessage* decodeCreateClassRequest(
113              	 Uint32 queueId,
114              	 XmlParser& parser, 
115              	 const String& messageId,
116 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
117 mday    1.7  
118                    CIMGetClassRequestMessage* decodeGetClassRequest(
119              	 Uint32 queueId,
120              	 XmlParser& parser, 
121              	 const String& messageId,
122 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
123 mday    1.7  
124                    CIMModifyClassRequestMessage* decodeModifyClassRequest(
125              	 Uint32 queueId,
126              	 XmlParser& parser, 
127              	 const String& messageId,
128 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
129 mday    1.7  
130                    CIMEnumerateClassNamesRequestMessage* decodeEnumerateClassNamesRequest(
131              	 Uint32 queueId,
132              	 XmlParser& parser, 
133              	 const String& messageId,
134 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
135 mday    1.7  
136                    CIMEnumerateClassesRequestMessage* decodeEnumerateClassesRequest(
137              	 Uint32 queueId,
138              	 XmlParser& parser, 
139              	 const String& messageId,
140 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
141 mday    1.7  
142                    CIMDeleteClassRequestMessage* decodeDeleteClassRequest(
143              	 Uint32 queueId,
144              	 XmlParser& parser, 
145              	 const String& messageId,
146 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
147 mday    1.7  
148                    CIMCreateInstanceRequestMessage* decodeCreateInstanceRequest(
149              	 Uint32 queueId,
150              	 XmlParser& parser, 
151              	 const String& messageId,
152 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
153 mday    1.7  
154                    CIMGetInstanceRequestMessage* decodeGetInstanceRequest(
155              	 Uint32 queueId,
156              	 XmlParser& parser, 
157              	 const String& messageId,
158 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
159 mday    1.7  
160                    CIMModifyInstanceRequestMessage* decodeModifyInstanceRequest(
161              	 Uint32 queueId,
162              	 XmlParser& parser, 
163              	 const String& messageId,
164 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
165 mday    1.7  
166                    CIMEnumerateInstanceNamesRequestMessage* decodeEnumerateInstanceNamesRequest(
167              	 Uint32 queueId,
168              	 XmlParser& parser, 
169              	 const String& messageId,
170 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
171 mday    1.7  
172                    CIMEnumerateInstancesRequestMessage* decodeEnumerateInstancesRequest(
173              	 Uint32 queueId,
174              	 XmlParser& parser, 
175              	 const String& messageId,
176 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
177 mday    1.7  
178                    CIMDeleteInstanceRequestMessage* decodeDeleteInstanceRequest(
179              	 Uint32 queueId,
180              	 XmlParser& parser, 
181              	 const String& messageId,
182 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
183 mday    1.7  
184                    CIMSetQualifierRequestMessage* decodeSetQualifierRequest(
185              	 Uint32 queueId,
186              	 XmlParser& parser, 
187              	 const String& messageId,
188 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
189 mday    1.7  
190                    CIMGetQualifierRequestMessage* decodeGetQualifierRequest(
191              	 Uint32 queueId,
192              	 XmlParser& parser, 
193              	 const String& messageId,
194 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
195 mday    1.7  
196                    CIMEnumerateQualifiersRequestMessage* decodeEnumerateQualifiersRequest(
197              	 Uint32 queueId,
198              	 XmlParser& parser, 
199              	 const String& messageId,
200 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
201 mday    1.7  
202                    CIMDeleteQualifierRequestMessage* decodeDeleteQualifierRequest(
203              	 Uint32 queueId,
204              	 XmlParser& parser, 
205              	 const String& messageId,
206 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
207 mday    1.7  
208                    CIMReferenceNamesRequestMessage* decodeReferenceNamesRequest(
209              	 Uint32 queueId,
210              	 XmlParser& parser, 
211              	 const String& messageId,
212 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
213 mday    1.7  
214                    CIMReferencesRequestMessage* decodeReferencesRequest(
215              	 Uint32 queueId,
216              	 XmlParser& parser, 
217              	 const String& messageId,
218 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
219 mday    1.7  
220                    CIMAssociatorNamesRequestMessage* decodeAssociatorNamesRequest(
221              	 Uint32 queueId,
222              	 XmlParser& parser, 
223              	 const String& messageId,
224 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
225 mday    1.7  
226                    CIMAssociatorsRequestMessage* decodeAssociatorsRequest(
227              	 Uint32 queueId,
228              	 XmlParser& parser, 
229              	 const String& messageId,
230 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
231 mday    1.7  
232                    CIMGetPropertyRequestMessage* decodeGetPropertyRequest(
233              	 Uint32 queueId,
234              	 XmlParser& parser, 
235              	 const String& messageId,
236 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
237 mday    1.7  
238                    CIMSetPropertyRequestMessage* decodeSetPropertyRequest(
239              	 Uint32 queueId,
240              	 XmlParser& parser, 
241              	 const String& messageId,
242 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
243 mday    1.7  
244 kumpf   1.14       CIMExecQueryRequestMessage* decodeExecQueryRequest(
245              	 Uint32 queueId,
246              	 XmlParser& parser, 
247              	 const String& messageId,
248 kumpf   1.36 	 const CIMNamespaceName& nameSpace);
249 kumpf   1.14 
250 mday    1.7        CIMInvokeMethodRequestMessage* decodeInvokeMethodRequest(
251              	 Uint32 queueId,
252              	 XmlParser& parser, 
253              	 const String& messageId,
254 kumpf   1.19 	 const CIMObjectPath& reference,
255 kumpf   1.36 	 const String& cimMethodName);
256 mike    1.2          
257 mday    1.7        /** Sets the flag to indicate whether or not the CIMServer is 
258              	  shutting down.
259                    */
260                    void setServerTerminating(Boolean flag);
261              
262                 private:
263 mike    1.2  
264 konrad.r 1.31 	//  Do not make _outputQueue an AutoPtr.
265                     MessageQueueService* _outputQueue; 
266 mike     1.2  
267 mday     1.7        // Queue where responses should be enqueued.
268                     Uint32 _returnQueueId;
269 mike     1.2  
270 mday     1.7        // Flag to indicate whether or not the CIMServer is shutting down.
271                     Boolean _serverTerminating;
272 j.alex   1.32 
273 mike     1.2  };
274               
275               PEGASUS_NAMESPACE_END
276               
277               #endif /* Pegasus_CIMOperationRequestDecoder_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2