1 karl 1.17 //%2006////////////////////////////////////////////////////////////////////////
|
2 mike 1.2 //
|
3 karl 1.11 // 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.9 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.11 // 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.14 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.17 // 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 // 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 // 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 kumpf 1.6 //
|
21 mike 1.2 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
22 // 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 // 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 // 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 (Nitin_Upasani@hp.com)
35 // Nag Boranna, Hewlett-Packard Company (nagaraja_boranna@hp.com)
|
36 david.dillard 1.12 // David Dillard, VERITAS Software Corp.
37 // (david.dillard@veriats.com)
|
38 w.white 1.13 // Willis White, IBM (whiwill@us.ibm.com)
|
39 mike 1.2 //
40 //%/////////////////////////////////////////////////////////////////////////////
41
42 #ifndef Pegasus_CIMOperationRequestEncoder_h
43 #define Pegasus_CIMOperationRequestEncoder_h
44
45 #include <fstream>
46 #include <Pegasus/Common/Config.h>
47 #include <Pegasus/Common/MessageQueue.h>
48 #include <Pegasus/Common/CIMMessage.h>
49 #include <Pegasus/Client/ClientAuthenticator.h>
50 #include <Pegasus/Client/Linkage.h>
|
51 a.dunfey 1.16 #include <Pegasus/Client/ClientPerfDataStore.h>
|
52 mike 1.2
53 PEGASUS_NAMESPACE_BEGIN
54
55 /** This class receives CIM Operation Request messages on its input queue
56 and encodes them into HTTP messages which it places on its output queue.
57 */
58 class PEGASUS_CLIENT_LINKAGE CIMOperationRequestEncoder : public MessageQueue
59 {
60 public:
61
62 /** Constuctor.
63 @param outputQueue queue to receive encoded HTTP messages.
|
64 kumpf 1.10 @param hostName Name of the target host for the encoded requests.
65 I.e., the value of the HTTP Host header.
|
66 mike 1.2 */
67 CIMOperationRequestEncoder(
|
68 kumpf 1.10 MessageQueue* outputQueue,
69 const String& hostName,
70 ClientAuthenticator* authenticator,
|
71 karl 1.8 Uint32 showOutput);
|
72 mike 1.2
73 /** Destructor. */
74 ~CIMOperationRequestEncoder();
75
76 /** This method is called when a message is enqueued on this queue. */
77 virtual void handleEnqueue();
78
|
79 a.dunfey 1.16 /**
80 * This methods gives the Encoder access to the ClientPerfDataStore that
81 * is in CIMClientRep. A pointer to the CIMClientRep::ClientPerfDataStore
82 * is passed in
83 */
84 void setDataStorePointer(ClientPerfDataStore* perfDataStore_ptr);
85
|
86 mike 1.2 private:
87
88 void _encodeCreateClassRequest(
89 CIMCreateClassRequestMessage* message);
90
91 void _encodeGetClassRequest(
92 CIMGetClassRequestMessage* message);
93
94 void _encodeModifyClassRequest(
95 CIMModifyClassRequestMessage* message);
96
97 void _encodeEnumerateClassNamesRequest(
98 CIMEnumerateClassNamesRequestMessage* message);
99
100 void _encodeEnumerateClassesRequest(
101 CIMEnumerateClassesRequestMessage* message);
102
103 void _encodeDeleteClassRequest(
104 CIMDeleteClassRequestMessage* message);
105
106 void _encodeCreateInstanceRequest(
107 mike 1.2 CIMCreateInstanceRequestMessage* message);
108
109 void _encodeGetInstanceRequest(
110 CIMGetInstanceRequestMessage* message);
111
112 void _encodeModifyInstanceRequest(
113 CIMModifyInstanceRequestMessage* message);
114
115 void _encodeEnumerateInstanceNamesRequest(
116 CIMEnumerateInstanceNamesRequestMessage* message);
117
118 void _encodeEnumerateInstancesRequest(
119 CIMEnumerateInstancesRequestMessage* message);
120
121 void _encodeDeleteInstanceRequest(
122 CIMDeleteInstanceRequestMessage* message);
123
124 void _encodeGetPropertyRequest(
125 CIMGetPropertyRequestMessage* message);
126
127 void _encodeSetPropertyRequest(
128 mike 1.2 CIMSetPropertyRequestMessage* message);
129
130 void _encodeSetQualifierRequest(
131 CIMSetQualifierRequestMessage* message);
132
133 void _encodeGetQualifierRequest(
134 CIMGetQualifierRequestMessage* message);
135
136 void _encodeEnumerateQualifiersRequest(
137 CIMEnumerateQualifiersRequestMessage* message);
138
139 void _encodeDeleteQualifierRequest(
140 CIMDeleteQualifierRequestMessage* message);
141
142 void _encodeReferenceNamesRequest(
143 CIMReferenceNamesRequestMessage* message);
144
145 void _encodeReferencesRequest(
146 CIMReferencesRequestMessage* message);
147
148 void _encodeAssociatorNamesRequest(
149 mike 1.2 CIMAssociatorNamesRequestMessage* message);
150
151 void _encodeAssociatorsRequest(
152 CIMAssociatorsRequestMessage* message);
153
|
154 kumpf 1.3 void _encodeExecQueryRequest(
|
155 kumpf 1.4 CIMExecQueryRequestMessage* message);
|
156 kumpf 1.3
|
157 mike 1.2 void _encodeInvokeMethodRequest(
158 CIMInvokeMethodRequestMessage* message);
159
|
160 mike 1.15 void _sendRequest(Buffer& buffer);
|
161 karl 1.8
|
162 mike 1.2 MessageQueue* _outputQueue;
|
163 kumpf 1.7 CString _hostName;
|
164 mike 1.2 ClientAuthenticator* _authenticator;
|
165 karl 1.8 // Controls client trace output. 1 = con, 2 == log
166 Uint32 _showOutput;
|
167 a.dunfey 1.16 ClientPerfDataStore* dataStore_prt;
|
168 mike 1.2 };
169
170 PEGASUS_NAMESPACE_END
171
172 #endif /* Pegasus_CIMOperationRequestEncoder_h */
|