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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2