1 kumpf 1.16 //%/////////////////////////////////////////////////////////////////////////////
|
2 mike 1.2 //
|
3 kumpf 1.16 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
|
4 mike 1.2 // The Open Group, Tivoli Systems
5 //
6 // Permission is hereby granted, free of charge, to any person obtaining a copy
|
7 kumpf 1.16 // of this software and associated documentation files (the "Software"), to
8 // deal in the Software without restriction, including without limitation the
9 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
10 mike 1.2 // sell copies of the Software, and to permit persons to whom the Software is
11 // furnished to do so, subject to the following conditions:
12 //
|
13 kumpf 1.16 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
14 mike 1.2 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
15 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
16 kumpf 1.16 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
17 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
19 mike 1.2 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 //
22 //==============================================================================
23 //
24 // Author: Mike Brasher (mbrasher@bmc.com)
25 //
26 // Modified By: Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
27 // Nag Boranna, Hewlett-Packard Company (nagaraja_boranna@hp.com)
28 // Jenny Yu, Hewlett-Packard Company (jenny_yu@hp.com)
|
29 kumpf 1.8 // Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
|
30 mike 1.2 //
31 //%/////////////////////////////////////////////////////////////////////////////
32
33 #ifndef Pegasus_CIMExportRequestDecoder_h
34 #define Pegasus_CIMExportRequestDecoder_h
35
36 #include <Pegasus/Common/Config.h>
|
37 mday 1.4 #include <Pegasus/Common/MessageQueueService.h>
|
38 mike 1.2 #include <Pegasus/Common/CIMMessage.h>
39 #include <Pegasus/Common/HTTPMessage.h>
40 #include <Pegasus/ExportServer/Linkage.h>
|
41 chuck 1.18 #include <Pegasus/Common/AcceptLanguages.h> //l10n
42 #include <Pegasus/Common/ContentLanguages.h> //l10n
|
43 mike 1.2
44 PEGASUS_NAMESPACE_BEGIN
45
46 class XmlParser;
47
48 /** This class decodes CIM operation requests and passes them down-stream.
|
49 mday 1.5 */
|
50 mike 1.2 class PEGASUS_EXPORT_SERVER_LINKAGE CIMExportRequestDecoder
|
51 mday 1.15 : public MessageQueueService
|
52 mike 1.2 {
|
53 mday 1.5 public:
|
54 mike 1.2
|
55 mday 1.15 typedef MessageQueueService Base;
|
56 mday 1.3
|
57 mday 1.5 CIMExportRequestDecoder(
|
58 mday 1.6 MessageQueueService* outputQueue,
|
59 mday 1.5 Uint32 returnQueueId);
|
60 mike 1.2
|
61 mday 1.5 ~CIMExportRequestDecoder();
|
62 mike 1.2
|
63 mday 1.5 void sendResponse(
64 Uint32 queueId,
65 Array<Sint8>& message);
|
66 mike 1.2
|
67 kumpf 1.7 void sendEMethodError(
|
68 mday 1.5 Uint32 queueId,
|
69 kumpf 1.17 HttpMethod httpMethod,
|
70 mday 1.5 const String& messageId,
71 const String& methodName,
|
72 kumpf 1.12 const CIMException& cimException);
|
73 kumpf 1.8
|
74 kumpf 1.10 void sendHttpError(
75 Uint32 queueId,
76 const String& status,
77 const String& cimError = String::EMPTY,
78 const String& messageBody = String::EMPTY);
|
79 mike 1.2
|
80 mday 1.5 virtual void handleEnqueue(Message *);
|
81 mike 1.2
|
82 mday 1.5 virtual void handleEnqueue();
|
83 mike 1.2
|
84 mday 1.5 void handleHTTPMessage(HTTPMessage* httpMessage);
|
85 mike 1.2
|
86 chuck 1.18 // l10n
|
87 mday 1.5 void handleMethodRequest(
88 Uint32 queueId,
|
89 kumpf 1.17 HttpMethod httpMethod,
|
90 mday 1.5 Sint8* content,
|
91 kumpf 1.11 const String& requestUri,
|
92 kumpf 1.9 const String& cimProtocolVersionInHeader,
|
93 kumpf 1.11 const String& cimExportMethodInHeader,
|
94 chuck 1.18 const String& userName,
95 const AcceptLanguages& httpAcceptLanguages,
96 const ContentLanguages& httpContentLanguages);
|
97 mike 1.2
|
98 mday 1.5 CIMExportIndicationRequestMessage* decodeExportIndicationRequest(
99 Uint32 queueId,
100 XmlParser& parser,
101 const String& messageId,
102 const String& nameSpace);
|
103 mike 1.2
|
104 mday 1.5 /** Sets the flag to indicate whether or not the CIMServer is
105 shutting down.
106 */
107 void setServerTerminating(Boolean flag);
|
108 mike 1.2
|
109 mday 1.5 private:
|
110 mike 1.2
|
111 mday 1.5 MessageQueue* _outputQueue;
|
112 mike 1.2
|
113 mday 1.5 // Queue where responses should be enqueued.
114 Uint32 _returnQueueId;
115
116 // Flag to indicate whether or not the CIMServer is shutting down.
117 Boolean _serverTerminating;
|
118 mike 1.2 };
119
120 PEGASUS_NAMESPACE_END
121
122 #endif /* Pegasus_CIMExportRequestDecoder_h */
|