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

  1 martin 1.40 //%LICENSE////////////////////////////////////////////////////////////////
  2 martin 1.41 //
  3 martin 1.40 // Licensed to The Open Group (TOG) under one or more contributor license
  4             // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
  5             // this work for additional information regarding copyright ownership.
  6             // Each contributor licenses this file to you under the OpenPegasus Open
  7             // Source License; you may not use this file except in compliance with the
  8             // License.
  9 martin 1.41 //
 10 martin 1.40 // Permission is hereby granted, free of charge, to any person obtaining a
 11             // copy of this software and associated documentation files (the "Software"),
 12             // to deal in the Software without restriction, including without limitation
 13             // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 14             // and/or sell copies of the Software, and to permit persons to whom the
 15             // Software is furnished to do so, subject to the following conditions:
 16 martin 1.41 //
 17 martin 1.40 // The above copyright notice and this permission notice shall be included
 18             // in all copies or substantial portions of the Software.
 19 martin 1.41 //
 20 martin 1.40 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 21 martin 1.41 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 22 martin 1.40 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 23             // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 24             // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 25             // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 26             // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 27 martin 1.41 //
 28 martin 1.40 //////////////////////////////////////////////////////////////////////////
 29 mike   1.2  //
 30             //%/////////////////////////////////////////////////////////////////////////////
 31             
 32             #ifndef Pegasus_CIMOperationRequestDecoder_h
 33             #define Pegasus_CIMOperationRequestDecoder_h
 34             
 35             #include <Pegasus/Common/Config.h>
 36 sahana.prabhakar 1.43 #include <Pegasus/Common/MessageQueue.h>
 37 mike             1.2  #include <Pegasus/Common/CIMMessage.h>
 38                       #include <Pegasus/Common/HTTPMessage.h>
 39 kumpf            1.34 #include <Pegasus/Common/AcceptLanguageList.h>
 40                       #include <Pegasus/Common/ContentLanguageList.h>
 41 a.arora          1.27 #include <Pegasus/Common/AutoPtr.h>
 42 mike             1.2  
 43                       PEGASUS_NAMESPACE_BEGIN
 44                       
 45                       class XmlParser;
 46                       
 47                       /** This class decodes CIM operation requests and passes them down-stream.
 48 mday             1.7   */
 49 sahana.prabhakar 1.43 class CIMOperationRequestDecoder : public MessageQueue
 50 mike             1.2  {
 51 kumpf            1.38 public:
 52 sahana.prabhakar 1.43     typedef MessageQueue Base;
 53 mike             1.2  
 54 kumpf            1.38     CIMOperationRequestDecoder(
 55 sahana.prabhakar 1.43         MessageQueue* outputQueue,
 56 kumpf            1.38         Uint32 returnQueueId);
 57                       
 58                          ~CIMOperationRequestDecoder();
 59                       
 60                          void sendResponse(
 61                               Uint32 queueId,
 62                               Buffer& message,
 63                               Boolean closeConnect = false);
 64                       
 65                           void sendIMethodError(
 66                               Uint32 queueId,
 67                               HttpMethod httpMethod,
 68                               const String& messageId,
 69                               const String& methodName,
 70                               const CIMException& cimException,
 71                               Boolean closeConnect = false);
 72                       
 73                           void sendMethodError(
 74                               Uint32 queueId,
 75                               HttpMethod httpMethod,
 76                               const String& messageId,
 77 kumpf            1.38         const String& methodName,
 78                               const CIMException& cimException,
 79                               Boolean closeConnect = false);
 80                       
 81                           void sendHttpError(
 82                               Uint32 queueId,
 83                               const String& status,
 84                               const String& cimError = String::EMPTY,
 85                               const String& messageBody = String::EMPTY,
 86                               Boolean closeConnect = false);
 87                       
 88                           virtual void handleEnqueue(Message *);
 89                       
 90                           virtual void handleEnqueue();
 91                       
 92                           void handleHTTPMessage(HTTPMessage* httpMessage);
 93                       
 94                           void handleMethodCall(
 95                               Uint32 queueId,
 96                               HttpMethod httpMethod,
 97                               char* content,
 98 kumpf            1.38         Uint32 contentLength,
 99 kumpf            1.42         const char* cimProtocolVersionInHeader,
100 kumpf            1.38         const String& cimMethodInHeader,
101                               const String& cimObjectInHeader,
102                               const String& authType,
103                               const String& userName,
104                               const String& ipAddress,
105                               const AcceptLanguageList& httpAcceptLanguages,
106                               const ContentLanguageList& httpContentLanguages,
107 mike             1.39         Boolean closeConnect,
108                               Boolean binaryRequest,
109                               Boolean binaryResponse);
110 kumpf            1.38 
111                           CIMCreateClassRequestMessage* decodeCreateClassRequest(
112                               Uint32 queueId,
113                               XmlParser& parser,
114                               const String& messageId,
115                               const CIMNamespaceName& nameSpace);
116                       
117                           CIMGetClassRequestMessage* decodeGetClassRequest(
118                               Uint32 queueId,
119                               XmlParser& parser,
120                               const String& messageId,
121                               const CIMNamespaceName& nameSpace);
122                       
123                           CIMModifyClassRequestMessage* decodeModifyClassRequest(
124                               Uint32 queueId,
125                               XmlParser& parser,
126                               const String& messageId,
127                               const CIMNamespaceName& nameSpace);
128                       
129                           CIMEnumerateClassNamesRequestMessage* decodeEnumerateClassNamesRequest(
130                               Uint32 queueId,
131 kumpf            1.38         XmlParser& parser,
132                               const String& messageId,
133                               const CIMNamespaceName& nameSpace);
134                       
135                           CIMEnumerateClassesRequestMessage* decodeEnumerateClassesRequest(
136                               Uint32 queueId,
137                               XmlParser& parser,
138                               const String& messageId,
139                               const CIMNamespaceName& nameSpace);
140                       
141                           CIMDeleteClassRequestMessage* decodeDeleteClassRequest(
142                               Uint32 queueId,
143                               XmlParser& parser,
144                               const String& messageId,
145                               const CIMNamespaceName& nameSpace);
146                       
147                           CIMCreateInstanceRequestMessage* decodeCreateInstanceRequest(
148                               Uint32 queueId,
149                               XmlParser& parser,
150                               const String& messageId,
151                               const CIMNamespaceName& nameSpace);
152 kumpf            1.38 
153                           CIMGetInstanceRequestMessage* decodeGetInstanceRequest(
154                               Uint32 queueId,
155                               XmlParser& parser,
156                               const String& messageId,
157                               const CIMNamespaceName& nameSpace);
158                       
159                           CIMModifyInstanceRequestMessage* decodeModifyInstanceRequest(
160                               Uint32 queueId,
161                               XmlParser& parser,
162                               const String& messageId,
163                               const CIMNamespaceName& nameSpace);
164                       
165                           CIMEnumerateInstanceNamesRequestMessage*
166                               decodeEnumerateInstanceNamesRequest(
167                                   Uint32 queueId,
168                                   XmlParser& parser,
169                                   const String& messageId,
170                                   const CIMNamespaceName& nameSpace);
171                       
172                           CIMEnumerateInstancesRequestMessage* decodeEnumerateInstancesRequest(
173 kumpf            1.38         Uint32 queueId,
174                               XmlParser& parser,
175                               const String& messageId,
176                               const CIMNamespaceName& nameSpace);
177                       
178                           CIMDeleteInstanceRequestMessage* decodeDeleteInstanceRequest(
179                               Uint32 queueId,
180                               XmlParser& parser,
181                               const String& messageId,
182                               const CIMNamespaceName& nameSpace);
183                       
184                           CIMSetQualifierRequestMessage* decodeSetQualifierRequest(
185                               Uint32 queueId,
186                               XmlParser& parser,
187                               const String& messageId,
188                               const CIMNamespaceName& nameSpace);
189                       
190                           CIMGetQualifierRequestMessage* decodeGetQualifierRequest(
191                               Uint32 queueId,
192                               XmlParser& parser,
193                               const String& messageId,
194 kumpf            1.38         const CIMNamespaceName& nameSpace);
195                       
196                           CIMEnumerateQualifiersRequestMessage* decodeEnumerateQualifiersRequest(
197                               Uint32 queueId,
198                               XmlParser& parser,
199                               const String& messageId,
200                               const CIMNamespaceName& nameSpace);
201                       
202                           CIMDeleteQualifierRequestMessage* decodeDeleteQualifierRequest(
203                               Uint32 queueId,
204                               XmlParser& parser,
205                               const String& messageId,
206                               const CIMNamespaceName& nameSpace);
207                       
208                           CIMReferenceNamesRequestMessage* decodeReferenceNamesRequest(
209                               Uint32 queueId,
210                               XmlParser& parser,
211                               const String& messageId,
212                               const CIMNamespaceName& nameSpace);
213                       
214                           CIMReferencesRequestMessage* decodeReferencesRequest(
215 kumpf            1.38         Uint32 queueId,
216                               XmlParser& parser,
217                               const String& messageId,
218                               const CIMNamespaceName& nameSpace);
219                       
220                           CIMAssociatorNamesRequestMessage* decodeAssociatorNamesRequest(
221                               Uint32 queueId,
222                               XmlParser& parser,
223                               const String& messageId,
224                               const CIMNamespaceName& nameSpace);
225                       
226                           CIMAssociatorsRequestMessage* decodeAssociatorsRequest(
227                               Uint32 queueId,
228                               XmlParser& parser,
229                               const String& messageId,
230                               const CIMNamespaceName& nameSpace);
231                       
232                           CIMGetPropertyRequestMessage* decodeGetPropertyRequest(
233                               Uint32 queueId,
234                               XmlParser& parser,
235                               const String& messageId,
236 kumpf            1.38         const CIMNamespaceName& nameSpace);
237                       
238                           CIMSetPropertyRequestMessage* decodeSetPropertyRequest(
239                               Uint32 queueId,
240                               XmlParser& parser,
241                               const String& messageId,
242                               const CIMNamespaceName& nameSpace);
243                       
244                           CIMExecQueryRequestMessage* decodeExecQueryRequest(
245                               Uint32 queueId,
246                               XmlParser& parser,
247                               const String& messageId,
248                               const CIMNamespaceName& nameSpace);
249                       
250                           CIMInvokeMethodRequestMessage* decodeInvokeMethodRequest(
251                               Uint32 queueId,
252                               XmlParser& parser,
253                               const String& messageId,
254                               const CIMObjectPath& reference,
255                               const String& cimMethodName);
256                       
257 kumpf            1.38     /** 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 kumpf            1.38     // Do not make _outputQueue an AutoPtr.
265 sahana.prabhakar 1.43     MessageQueue* _outputQueue;
266 mike             1.2  
267 kumpf            1.38     // Queue where responses should be enqueued.
268                           Uint32 _returnQueueId;
269 j.alex           1.32 
270 kumpf            1.38     // Flag to indicate whether or not the CIMServer is shutting down.
271                           Boolean _serverTerminating;
272 mike             1.2  };
273                       
274                       PEGASUS_NAMESPACE_END
275                       
276                       #endif /* Pegasus_CIMOperationRequestDecoder_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2