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

  1 karl  1.4 //%2004////////////////////////////////////////////////////////////////////////
  2 mday  1.2 //
  3 karl  1.4 // 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.3 // IBM Corp.; EMC Corporation, The Open Group.
  7 karl  1.4 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
  8           // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
  9 mday  1.2 //
 10           // Permission is hereby granted, free of charge, to any person obtaining a copy
 11           // of this software and associated documentation files (the "Software"), to
 12           // deal in the Software without restriction, including without limitation the
 13           // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 14           // sell copies of the Software, and to permit persons to whom the Software is
 15           // furnished to do so, subject to the following conditions:
 16           // 
 17           // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 18           // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 19           // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 20           // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 21           // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 22           // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 23           // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 24           // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 25           //
 26           //==============================================================================
 27           //
 28           // Author: Mike Day (mdday@us.ibm.com)
 29           //
 30 mday  1.2 //%/////////////////////////////////////////////////////////////////////////////
 31           #ifndef Pegasus_BinaryMessageHandler_h
 32           #define Pegasus_BinaryMessageHandler_h
 33           #include <Pegasus/Common/Config.h>
 34           #include <Pegasus/Common/AsyncOpNode.h>
 35           #include <Pegasus/Common/DQueue.h>
 36           #include <Pegasus/Common/MessageQueueService.h>
 37           #include <Pegasus/Common/Message.h>
 38           #include <Pegasus/Common/CIMMessage.h>
 39           #include <Pegasus/Common/Tracer.h>
 40           #include <Pegasus/Common/TraceComponents.h>
 41           #include <Pegasus/Common/IPC.h>
 42           #include <Pegasus/Common/Thread.h>
 43           #include <Pegasus/Common/Constants.h>
 44           #include <Pegasus/Server/Linkage.h>
 45           
 46           PEGASUS_NAMESPACE_BEGIN
 47           
 48           /** This class provides an in-process binary client interface, 
 49               both for requests and responses. 
 50           */
 51 mday  1.2 
 52           class PEGASUS_SERVER_LINKAGE BinaryMessageHandler : public MessageQueueService
 53           {
 54              public: 
 55                 typedef MessageQueueService Base;
 56           
 57                 BinaryMessageHandler(MessageQueueService *outputQueue);
 58                 ~BinaryMessageHandler();
 59                 
 60                 virtual Boolean messageOK(const Message * message);
 61                 virtual void handleEnqueue(void);
 62                 virtual void handleEnqueue(Message * message);
 63                 virtual void _handle_async_request(AsyncRequest * request);
 64              protected:
 65                 static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL handle_binary_message(void *);
 66           
 67                 // **** Request Messages **** //
 68                 
 69                 void handleCreateClassRequest(
 70           	 AsyncOpNode *, 
 71           	 CIMCreateClassRequestMessage *) throw();
 72 mday  1.2       
 73                 void handleGetClassRequest(
 74           	 AsyncOpNode *,
 75           	 CIMGetClassRequestMessage *) throw();
 76                 
 77                 void handleModifyClassRequest(
 78           	 AsyncOpNode *, 
 79           	 CIMModifyClassRequestMessage *) throw();
 80                 
 81                 void handleEnumerateClassNamesRequest(
 82           	 AsyncOpNode *,
 83           	 CIMEnumerateClassNamesRequestMessage *) throw();
 84           
 85                 void handleEnumerateClassesRequest(
 86           	 AsyncOpNode *,
 87           	 CIMEnumerateClassesRequestMessage *) throw();
 88           
 89                 void handleDeleteClassRequest(
 90           	 AsyncOpNode *,
 91           	 CIMDeleteClassRequestMessage *) throw();
 92           
 93 mday  1.2       void handleCreateInstanceRequest(
 94           	 AsyncOpNode *,
 95           	 CIMCreateInstanceRequestMessage *) throw();
 96           
 97                 void handleGetInstanceRequest(
 98           	 AsyncOpNode *,
 99           	 CIMGetInstanceRequestMessage *) throw();
100           
101                 void handleModifyInstanceRequest(
102           	 AsyncOpNode *,
103           	 CIMModifyInstanceRequestMessage *) throw();
104           
105                 void handleEnumerateInstanceNamesRequest(
106           	 AsyncOpNode *,
107           	 CIMEnumerateInstanceNamesRequestMessage *) throw();
108           
109                 void handleEnumerateInstancesRequest(
110           	 AsyncOpNode *,
111           	 CIMEnumerateInstancesRequestMessage *) throw();
112           
113                 void handleDeleteInstanceRequest(
114 mday  1.2 	 AsyncOpNode *,
115           	 CIMDeleteInstanceRequestMessage *) throw();
116                 
117                 void handleSetQualifierRequest(
118           	 AsyncOpNode *,
119           	 CIMSetQualifierRequestMessage *) throw();
120                 
121                 void handleGetQualifierRequest(
122           	 AsyncOpNode *,
123           	 CIMGetQualifierRequestMessage *) throw();
124                 
125                 void handleEnumerateQualifiersRequest(
126           	 AsyncOpNode *,
127           	 CIMEnumerateQualifiersRequestMessage *) throw();
128                 
129                 void handleDeleteQualifiersRequest(
130           	 AsyncOpNode *,
131           	 CIMDeleteQualifierRequestMessage *) throw(); 
132                 
133                 void handleReferenceNamesRequest(
134           	 AsyncOpNode *,
135 mday  1.2 	 CIMReferenceNamesRequestMessage *) throw(); 
136           
137                 void handleReferencesRequest(
138           	 AsyncOpNode *,
139           	 CIMReferencesRequestMessage *) throw(); 
140           
141                 void handleAssociatorNamesRequest(
142           	 AsyncOpNode *,
143           	 CIMAssociatorNamesRequestMessage *) throw(); 
144           
145                 void handleAssociatorsRequest(
146           	 AsyncOpNode *,
147           	 CIMAssociatorsRequestMessage *) throw();  
148           
149                 void handleGetPropertyRequest(
150           	 AsyncOpNode *,
151           	 CIMGetPropertyRequestMessage *) throw(); 
152           
153                 void handleSetPropertyRequest(
154           	 AsyncOpNode *,
155           	 CIMSetPropertyRequestMessage *) throw();  
156 mday  1.2 
157                 void handleExecQueryRequest(
158           	 AsyncOpNode *,
159           	 CIMExecQueryRequestMessage *) throw();  
160           
161                 void handleInvokeMethodRequest(
162           	 AsyncOpNode *,
163           	 CIMInvokeMethodRequestMessage *) throw(); 
164                 
165                 // **** Response Messages **** //
166                 
167                 void handleCreateClassResponse(
168           	 AsyncOpNode *,
169           	 CIMCreateClassResponseMessage *) throw(); 
170           
171                 void handleGetClassResponse(
172           	 AsyncOpNode *,
173           	 CIMGetClassResponseMessage *) throw(); 
174           
175                 void handleModifyClassResponse(
176           	 AsyncOpNode *,
177 mday  1.2 	 CIMModifyClassResponseMessage *) throw(); 
178                 
179                 void handleEnumerateClassNamesResponse(
180           	 AsyncOpNode *,
181           	 CIMEnumerateClassNamesResponseMessage *) throw(); 
182           
183                 void handleEnumerateClassesResponse(
184           	 AsyncOpNode *,
185           	 CIMEnumerateClassesResponseMessage *) throw(); 
186           
187                 void handleDeleteClassResponse(
188           	 AsyncOpNode *,
189           	 CIMDeleteClassResponseMessage *) throw(); 
190           
191                 void handleCreateInstanceResponse(
192           	 AsyncOpNode *,
193           	 CIMCreateInstanceResponseMessage *) throw(); 
194           
195                 void handleGetInstanceResponse(
196           	 AsyncOpNode *,
197           	 CIMGetInstanceResponseMessage *) throw(); 
198 mday  1.2 
199                 void handleModifyInstanceResponse(
200           	 AsyncOpNode *,
201           	 CIMModifyInstanceResponseMessage *) throw(); 
202           
203                 void handleEnumerateInstanceNamesResponse(
204           	 AsyncOpNode *,
205           	 CIMEnumerateInstanceNamesResponseMessage *) throw(); 
206           
207                 void handleEnumerateInstancesResponse(
208           	 AsyncOpNode *,
209           	 CIMEnumerateInstancesResponseMessage *) throw(); 
210           
211                 void handleDeleteInstanceResponse(
212           	 AsyncOpNode *,
213           	 CIMDeleteInstanceResponseMessage *) throw(); 
214           
215                 void handleGetPropertyResponse(
216           	 AsyncOpNode *,
217           	 CIMGetPropertyResponseMessage *) throw(); 
218           
219 mday  1.2       void handleSetPropertyResponse(
220           	 AsyncOpNode *,
221           	 CIMSetPropertyResponseMessage *) throw(); 
222                 
223                 void handleSetQualifierResponse(
224           	 AsyncOpNode *,
225           	 CIMSetQualifierResponseMessage *) throw(); 
226           
227                 void handleGetQualifierResponse(
228           	 AsyncOpNode *,
229           	 CIMGetQualifierResponseMessage *) throw(); 
230                 
231                 void handleEnumerateQualifiersResponse(
232           	 AsyncOpNode *,
233           	 CIMEnumerateQualifiersResponseMessage *) throw(); 
234           
235                 void handleDeleteQualifierResponse(
236           	 AsyncOpNode *,
237           	 CIMDeleteQualifierResponseMessage *) throw(); 
238           
239                 void handleReferenceNamesResponse(
240 mday  1.2 	 AsyncOpNode *,
241           	 CIMReferenceNamesResponseMessage *) throw(); 
242           
243                 void handleReferencesResponse(
244           	 AsyncOpNode *,
245           	 CIMReferencesResponseMessage *) throw(); 
246           
247                 void handleAssociatorNamesResponse(
248           	 AsyncOpNode *,
249           	 CIMAssociatorNamesResponseMessage *) throw();  
250           
251                 void handleAssociatorsResponse(
252           	 AsyncOpNode *,
253           	 CIMAssociatorsResponseMessage *) throw();
254           
255                 void handleExecQueryResponse(
256           	 AsyncOpNode *,
257           	 CIMExecQueryResponseMessage *) throw();
258                 
259                 void handleInvokeMethodResponse(
260           	 AsyncOpNode *,
261 mday  1.2 	 CIMInvokeMethodResponseMessage *) throw();
262                 
263              private:
264                 BinaryMessageHandler(void);
265                 BinaryMessageHandler & operator = (const BinaryMessageHandler & ) const;
266                 void _handleRequest(AsyncOpNode *, Message *) throw();
267                 void _handleResponse(AsyncOpNode *, Message *) throw();
268                 
269           
270                 MessageQueueService* _outputQueue;
271           
272                 // Flag to indicate whether or not the CIMServer is shutting down.
273                 Boolean _serverTerminating;
274                 AsyncDQueue<AsyncOpNode> _msg_q;
275                 
276           };
277           
278           
279           PEGASUS_NAMESPACE_END
280           
281           #endif // Pegasus_BinaryMessageHandler_h

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2