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

  1 karl  1.7 //%2006////////////////////////////////////////////////////////////////////////
  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 karl  1.5 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 10           // EMC Corporation; VERITAS Software Corporation; The Open Group.
 11 karl  1.7 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 12           // EMC Corporation; Symantec Corporation; The Open Group.
 13 mday  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           // 
 21           // 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 Day (mdday@us.ibm.com)
 33           //
 34 mday  1.2 //%/////////////////////////////////////////////////////////////////////////////
 35           #ifndef Pegasus_BinaryMessageHandler_h
 36           #define Pegasus_BinaryMessageHandler_h
 37           #include <Pegasus/Common/Config.h>
 38           #include <Pegasus/Common/AsyncOpNode.h>
 39 mike  1.8 #include <Pegasus/Common/AsyncQueue.h>
 40 mday  1.2 #include <Pegasus/Common/MessageQueueService.h>
 41           #include <Pegasus/Common/Message.h>
 42           #include <Pegasus/Common/CIMMessage.h>
 43           #include <Pegasus/Common/Tracer.h>
 44           #include <Pegasus/Common/TraceComponents.h>
 45           #include <Pegasus/Common/IPC.h>
 46           #include <Pegasus/Common/Thread.h>
 47           #include <Pegasus/Common/Constants.h>
 48           #include <Pegasus/Server/Linkage.h>
 49           
 50           PEGASUS_NAMESPACE_BEGIN
 51           
 52           /** This class provides an in-process binary client interface, 
 53               both for requests and responses. 
 54           */
 55           
 56           class PEGASUS_SERVER_LINKAGE BinaryMessageHandler : public MessageQueueService
 57           {
 58              public: 
 59                 typedef MessageQueueService Base;
 60           
 61 mday  1.2       BinaryMessageHandler(MessageQueueService *outputQueue);
 62                 ~BinaryMessageHandler();
 63                 
 64                 virtual Boolean messageOK(const Message * message);
 65                 virtual void handleEnqueue(void);
 66                 virtual void handleEnqueue(Message * message);
 67                 virtual void _handle_async_request(AsyncRequest * request);
 68              protected:
 69                 static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL handle_binary_message(void *);
 70           
 71                 // **** Request Messages **** //
 72                 
 73                 void handleCreateClassRequest(
 74           	 AsyncOpNode *, 
 75           	 CIMCreateClassRequestMessage *) throw();
 76                 
 77                 void handleGetClassRequest(
 78           	 AsyncOpNode *,
 79           	 CIMGetClassRequestMessage *) throw();
 80                 
 81                 void handleModifyClassRequest(
 82 mday  1.2 	 AsyncOpNode *, 
 83           	 CIMModifyClassRequestMessage *) throw();
 84                 
 85                 void handleEnumerateClassNamesRequest(
 86           	 AsyncOpNode *,
 87           	 CIMEnumerateClassNamesRequestMessage *) throw();
 88           
 89                 void handleEnumerateClassesRequest(
 90           	 AsyncOpNode *,
 91           	 CIMEnumerateClassesRequestMessage *) throw();
 92           
 93                 void handleDeleteClassRequest(
 94           	 AsyncOpNode *,
 95           	 CIMDeleteClassRequestMessage *) throw();
 96           
 97                 void handleCreateInstanceRequest(
 98           	 AsyncOpNode *,
 99           	 CIMCreateInstanceRequestMessage *) throw();
100           
101                 void handleGetInstanceRequest(
102           	 AsyncOpNode *,
103 mday  1.2 	 CIMGetInstanceRequestMessage *) throw();
104           
105                 void handleModifyInstanceRequest(
106           	 AsyncOpNode *,
107           	 CIMModifyInstanceRequestMessage *) throw();
108           
109                 void handleEnumerateInstanceNamesRequest(
110           	 AsyncOpNode *,
111           	 CIMEnumerateInstanceNamesRequestMessage *) throw();
112           
113                 void handleEnumerateInstancesRequest(
114           	 AsyncOpNode *,
115           	 CIMEnumerateInstancesRequestMessage *) throw();
116           
117                 void handleDeleteInstanceRequest(
118           	 AsyncOpNode *,
119           	 CIMDeleteInstanceRequestMessage *) throw();
120                 
121                 void handleSetQualifierRequest(
122           	 AsyncOpNode *,
123           	 CIMSetQualifierRequestMessage *) throw();
124 mday  1.2       
125                 void handleGetQualifierRequest(
126           	 AsyncOpNode *,
127           	 CIMGetQualifierRequestMessage *) throw();
128                 
129                 void handleEnumerateQualifiersRequest(
130           	 AsyncOpNode *,
131           	 CIMEnumerateQualifiersRequestMessage *) throw();
132                 
133                 void handleDeleteQualifiersRequest(
134           	 AsyncOpNode *,
135           	 CIMDeleteQualifierRequestMessage *) throw(); 
136                 
137                 void handleReferenceNamesRequest(
138           	 AsyncOpNode *,
139           	 CIMReferenceNamesRequestMessage *) throw(); 
140           
141                 void handleReferencesRequest(
142           	 AsyncOpNode *,
143           	 CIMReferencesRequestMessage *) throw(); 
144           
145 mday  1.2       void handleAssociatorNamesRequest(
146           	 AsyncOpNode *,
147           	 CIMAssociatorNamesRequestMessage *) throw(); 
148           
149                 void handleAssociatorsRequest(
150           	 AsyncOpNode *,
151           	 CIMAssociatorsRequestMessage *) throw();  
152           
153                 void handleGetPropertyRequest(
154           	 AsyncOpNode *,
155           	 CIMGetPropertyRequestMessage *) throw(); 
156           
157                 void handleSetPropertyRequest(
158           	 AsyncOpNode *,
159           	 CIMSetPropertyRequestMessage *) throw();  
160           
161                 void handleExecQueryRequest(
162           	 AsyncOpNode *,
163           	 CIMExecQueryRequestMessage *) throw();  
164           
165                 void handleInvokeMethodRequest(
166 mday  1.2 	 AsyncOpNode *,
167           	 CIMInvokeMethodRequestMessage *) throw(); 
168                 
169                 // **** Response Messages **** //
170                 
171                 void handleCreateClassResponse(
172           	 AsyncOpNode *,
173           	 CIMCreateClassResponseMessage *) throw(); 
174           
175                 void handleGetClassResponse(
176           	 AsyncOpNode *,
177           	 CIMGetClassResponseMessage *) throw(); 
178           
179                 void handleModifyClassResponse(
180           	 AsyncOpNode *,
181           	 CIMModifyClassResponseMessage *) throw(); 
182                 
183                 void handleEnumerateClassNamesResponse(
184           	 AsyncOpNode *,
185           	 CIMEnumerateClassNamesResponseMessage *) throw(); 
186           
187 mday  1.2       void handleEnumerateClassesResponse(
188           	 AsyncOpNode *,
189           	 CIMEnumerateClassesResponseMessage *) throw(); 
190           
191                 void handleDeleteClassResponse(
192           	 AsyncOpNode *,
193           	 CIMDeleteClassResponseMessage *) throw(); 
194           
195                 void handleCreateInstanceResponse(
196           	 AsyncOpNode *,
197           	 CIMCreateInstanceResponseMessage *) throw(); 
198           
199                 void handleGetInstanceResponse(
200           	 AsyncOpNode *,
201           	 CIMGetInstanceResponseMessage *) throw(); 
202           
203                 void handleModifyInstanceResponse(
204           	 AsyncOpNode *,
205           	 CIMModifyInstanceResponseMessage *) throw(); 
206           
207                 void handleEnumerateInstanceNamesResponse(
208 mday  1.2 	 AsyncOpNode *,
209           	 CIMEnumerateInstanceNamesResponseMessage *) throw(); 
210           
211                 void handleEnumerateInstancesResponse(
212           	 AsyncOpNode *,
213           	 CIMEnumerateInstancesResponseMessage *) throw(); 
214           
215                 void handleDeleteInstanceResponse(
216           	 AsyncOpNode *,
217           	 CIMDeleteInstanceResponseMessage *) throw(); 
218           
219                 void handleGetPropertyResponse(
220           	 AsyncOpNode *,
221           	 CIMGetPropertyResponseMessage *) throw(); 
222           
223                 void handleSetPropertyResponse(
224           	 AsyncOpNode *,
225           	 CIMSetPropertyResponseMessage *) throw(); 
226                 
227                 void handleSetQualifierResponse(
228           	 AsyncOpNode *,
229 mday  1.2 	 CIMSetQualifierResponseMessage *) throw(); 
230           
231                 void handleGetQualifierResponse(
232           	 AsyncOpNode *,
233           	 CIMGetQualifierResponseMessage *) throw(); 
234                 
235                 void handleEnumerateQualifiersResponse(
236           	 AsyncOpNode *,
237           	 CIMEnumerateQualifiersResponseMessage *) throw(); 
238           
239                 void handleDeleteQualifierResponse(
240           	 AsyncOpNode *,
241           	 CIMDeleteQualifierResponseMessage *) throw(); 
242           
243                 void handleReferenceNamesResponse(
244           	 AsyncOpNode *,
245           	 CIMReferenceNamesResponseMessage *) throw(); 
246           
247                 void handleReferencesResponse(
248           	 AsyncOpNode *,
249           	 CIMReferencesResponseMessage *) throw(); 
250 mday  1.2 
251                 void handleAssociatorNamesResponse(
252           	 AsyncOpNode *,
253           	 CIMAssociatorNamesResponseMessage *) throw();  
254           
255                 void handleAssociatorsResponse(
256           	 AsyncOpNode *,
257           	 CIMAssociatorsResponseMessage *) throw();
258           
259                 void handleExecQueryResponse(
260           	 AsyncOpNode *,
261           	 CIMExecQueryResponseMessage *) throw();
262                 
263                 void handleInvokeMethodResponse(
264           	 AsyncOpNode *,
265           	 CIMInvokeMethodResponseMessage *) throw();
266                 
267              private:
268                 BinaryMessageHandler(void);
269                 BinaryMessageHandler & operator = (const BinaryMessageHandler & ) const;
270                 void _handleRequest(AsyncOpNode *, Message *) throw();
271 mday  1.2       void _handleResponse(AsyncOpNode *, Message *) throw();
272                 
273           
274                 MessageQueueService* _outputQueue;
275           
276                 // Flag to indicate whether or not the CIMServer is shutting down.
277 mike  1.8       AsyncQueue<AsyncOpNode> _msg_q;
278 mday  1.2       
279           };
280           
281           
282           PEGASUS_NAMESPACE_END
283           
284           #endif // Pegasus_BinaryMessageHandler_h

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2