1 martin 1.20 //%LICENSE////////////////////////////////////////////////////////////////
|
2 martin 1.21 //
|
3 martin 1.20 // 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.21 //
|
10 martin 1.20 // 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.21 //
|
17 martin 1.20 // The above copyright notice and this permission notice shall be included
18 // in all copies or substantial portions of the Software.
|
19 martin 1.21 //
|
20 martin 1.20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
21 martin 1.21 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22 martin 1.20 // 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.21 //
|
28 martin 1.20 //////////////////////////////////////////////////////////////////////////
|
29 mike 1.2 //
30 //%/////////////////////////////////////////////////////////////////////////////
31
32 #ifndef Pegasus_CIMOperationRequestEncoder_h
33 #define Pegasus_CIMOperationRequestEncoder_h
34
35 #include <fstream>
36 #include <Pegasus/Common/Config.h>
37 #include <Pegasus/Common/MessageQueue.h>
38 #include <Pegasus/Common/CIMMessage.h>
39 #include <Pegasus/Client/ClientAuthenticator.h>
40 #include <Pegasus/Client/Linkage.h>
|
41 a.dunfey 1.16 #include <Pegasus/Client/ClientPerfDataStore.h>
|
42 mike 1.2
43 PEGASUS_NAMESPACE_BEGIN
44
45 /** This class receives CIM Operation Request messages on its input queue
46 and encodes them into HTTP messages which it places on its output queue.
47 */
48 class PEGASUS_CLIENT_LINKAGE CIMOperationRequestEncoder : public MessageQueue
49 {
50 public:
51
52 /** Constuctor.
|
53 kumpf 1.18 @param outputQueue queue to receive encoded HTTP messages.
|
54 kumpf 1.10 @param hostName Name of the target host for the encoded requests.
|
55 kumpf 1.18 I.e., the value of the HTTP Host header.
|
56 mike 1.2 */
57 CIMOperationRequestEncoder(
|
58 kumpf 1.10 MessageQueue* outputQueue,
59 const String& hostName,
60 ClientAuthenticator* authenticator,
|
61 mike 1.19 bool binaryRequest = false,
62 bool binaryResponse = false);
|
63 mike 1.2
64 /** Destructor. */
65 ~CIMOperationRequestEncoder();
66
67 /** This method is called when a message is enqueued on this queue. */
68 virtual void handleEnqueue();
69
|
70 a.dunfey 1.16 /**
|
71 kumpf 1.18 Gives the Encoder access to the ClientPerfDataStore that
72 is in CIMClientRep. A pointer to the CIMClientRep::ClientPerfDataStore
73 is passed in.
|
74 a.dunfey 1.16 */
75 void setDataStorePointer(ClientPerfDataStore* perfDataStore_ptr);
76
|
77 mike 1.2 private:
78
79 void _encodeCreateClassRequest(
|
80 kumpf 1.18 CIMCreateClassRequestMessage* message);
|
81 mike 1.2
82 void _encodeGetClassRequest(
|
83 kumpf 1.18 CIMGetClassRequestMessage* message);
|
84 mike 1.2
85 void _encodeModifyClassRequest(
|
86 kumpf 1.18 CIMModifyClassRequestMessage* message);
|
87 mike 1.2
88 void _encodeEnumerateClassNamesRequest(
|
89 kumpf 1.18 CIMEnumerateClassNamesRequestMessage* message);
|
90 mike 1.2
91 void _encodeEnumerateClassesRequest(
|
92 kumpf 1.18 CIMEnumerateClassesRequestMessage* message);
|
93 mike 1.2
94 void _encodeDeleteClassRequest(
|
95 kumpf 1.18 CIMDeleteClassRequestMessage* message);
|
96 mike 1.2
97 void _encodeCreateInstanceRequest(
|
98 kumpf 1.18 CIMCreateInstanceRequestMessage* message);
|
99 mike 1.2
100 void _encodeGetInstanceRequest(
|
101 kumpf 1.18 CIMGetInstanceRequestMessage* message);
|
102 mike 1.2
103 void _encodeModifyInstanceRequest(
|
104 kumpf 1.18 CIMModifyInstanceRequestMessage* message);
|
105 mike 1.2
106 void _encodeEnumerateInstanceNamesRequest(
|
107 kumpf 1.18 CIMEnumerateInstanceNamesRequestMessage* message);
|
108 mike 1.2
109 void _encodeEnumerateInstancesRequest(
|
110 kumpf 1.18 CIMEnumerateInstancesRequestMessage* message);
|
111 mike 1.2
112 void _encodeDeleteInstanceRequest(
|
113 kumpf 1.18 CIMDeleteInstanceRequestMessage* message);
|
114 mike 1.2
115 void _encodeGetPropertyRequest(
|
116 kumpf 1.18 CIMGetPropertyRequestMessage* message);
|
117 mike 1.2
118 void _encodeSetPropertyRequest(
|
119 kumpf 1.18 CIMSetPropertyRequestMessage* message);
|
120 mike 1.2
121 void _encodeSetQualifierRequest(
|
122 kumpf 1.18 CIMSetQualifierRequestMessage* message);
|
123 mike 1.2
124 void _encodeGetQualifierRequest(
|
125 kumpf 1.18 CIMGetQualifierRequestMessage* message);
|
126 mike 1.2
127 void _encodeEnumerateQualifiersRequest(
|
128 kumpf 1.18 CIMEnumerateQualifiersRequestMessage* message);
|
129 mike 1.2
130 void _encodeDeleteQualifierRequest(
|
131 kumpf 1.18 CIMDeleteQualifierRequestMessage* message);
|
132 mike 1.2
133 void _encodeReferenceNamesRequest(
|
134 kumpf 1.18 CIMReferenceNamesRequestMessage* message);
|
135 mike 1.2
136 void _encodeReferencesRequest(
|
137 kumpf 1.18 CIMReferencesRequestMessage* message);
|
138 mike 1.2
139 void _encodeAssociatorNamesRequest(
|
140 kumpf 1.18 CIMAssociatorNamesRequestMessage* message);
|
141 mike 1.2
142 void _encodeAssociatorsRequest(
|
143 kumpf 1.18 CIMAssociatorsRequestMessage* message);
|
144 mike 1.2
|
145 kumpf 1.3 void _encodeExecQueryRequest(
|
146 kumpf 1.18 CIMExecQueryRequestMessage* message);
|
147 kumpf 1.3
|
148 mike 1.2 void _encodeInvokeMethodRequest(
|
149 kumpf 1.18 CIMInvokeMethodRequestMessage* message);
|
150 mike 1.2
|
151 kumpf 1.18 void _sendRequest(Buffer& buffer);
|
152 karl 1.8
|
153 mike 1.2 MessageQueue* _outputQueue;
|
154 kumpf 1.7 CString _hostName;
|
155 mike 1.2 ClientAuthenticator* _authenticator;
|
156 karl 1.23
|
157 a.dunfey 1.16 ClientPerfDataStore* dataStore_prt;
|
158 mike 1.19 bool _binaryRequest;
159 bool _binaryResponse;
|
160 mike 1.2 };
161
162 PEGASUS_NAMESPACE_END
163
164 #endif /* Pegasus_CIMOperationRequestEncoder_h */
|