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

  1 mike  1.2 //%///////-*-c++-*-/////////////////////////////////////////////////////////////
  2           //
  3           // Copyright (c) 2000, 2001 BMC Software, Hewlett-Packard Company, IBM,
  4           // The Open Group, Tivoli Systems
  5           //
  6           // Permission is hereby granted, free of charge, to any person obtaining a copy
  7           // of this software and associated documentation files (the "Software"), to
  8           // deal in the Software without restriction, including without limitation the
  9           // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 10           // sell copies of the Software, and to permit persons to whom the Software is
 11           // furnished to do so, subject to the following conditions:
 12           //
 13           // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 14           // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 15           // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 16           // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 17           // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 18           // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 19           // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 20           // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 21           //
 22 mike  1.2 //==============================================================================
 23           //
 24           // Author: Mike Brasher (mbrasher@bmc.com)
 25           //
 26           // Modified By: Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
 27           //            : Mike Day (mdday@us.ibm.com)
 28           //            : Yi Zhou (yi_zhou@hp.com)
 29           //            : Carol Ann Krug Graves, Hewlett-Packard Company
 30           //              (carolann_graves@hp.com)
 31           //
 32           //
 33           //%/////////////////////////////////////////////////////////////////////////////
 34           
 35           #ifndef PegasusDispatcher_Dispatcher_h
 36           #define PegasusDispatcher_Dispatcher_h
 37           
 38           #include <Pegasus/Common/Config.h>
 39           #include <Pegasus/Common/IPC.h>
 40           #include <Pegasus/Common/DQueue.h>
 41           #include <Pegasus/Common/Thread.h>
 42           #include <Pegasus/Common/MessageQueue.h>
 43 mike  1.2 #include <Pegasus/Common/CIMMessage.h>
 44           #include <Pegasus/Common/CIMObject.h>
 45           #include <Pegasus/Common/OperationContext.h>
 46 chip  1.7 
 47           #include <Pegasus/Server/CIMServer.h>
 48 mike  1.2 
 49 chip  1.7 #include <Pegasus/Repository/CIMRepository.h>
 50 mike  1.2 
 51 chip  1.9 #include <Pegasus/Server/ServiceCIMOMHandle.h>
 52 chip  1.8 #include <Pegasus/Server/ConfigurationManager/ConfigurationManagerQueue.h>
 53           
 54 mike  1.2 PEGASUS_NAMESPACE_BEGIN
 55           
 56 mday  1.11 class PEGASUS_SERVER_LINKAGE CIMOperationRequestDispatcher : public MessageQueueService
 57 mike  1.2  {
 58            public:
 59 chip  1.6  
 60 mday  1.11     typedef MessageQueueService Base;
 61 chip  1.6  
 62 kumpf 1.10     CIMOperationRequestDispatcher(
 63            	CIMRepository* repository, CIMServer* server);
 64 chip  1.6  
 65 mday  1.16       virtual ~CIMOperationRequestDispatcher();
 66                  
 67 mday  1.13       virtual void handleEnqueue();
 68 chip  1.6  
 69 kumpf 1.10     virtual const char* getQueueName() const;
 70 chip  1.6  
 71 kumpf 1.10     void handleGetClassRequest(
 72            	CIMGetClassRequestMessage* request);
 73 chip  1.6  
 74 kumpf 1.10     void handleGetInstanceRequest(
 75            	CIMGetInstanceRequestMessage* request);
 76 chip  1.6  
 77 kumpf 1.10     void handleDeleteClassRequest(
 78            	CIMDeleteClassRequestMessage* request);
 79 chip  1.6  
 80 kumpf 1.10     void handleDeleteInstanceRequest(
 81            	CIMDeleteInstanceRequestMessage* request);
 82 chip  1.6  
 83 kumpf 1.10     void handleCreateClassRequest(
 84            	CIMCreateClassRequestMessage* request);
 85 chip  1.6  
 86 kumpf 1.10     void handleCreateInstanceRequest(
 87            	CIMCreateInstanceRequestMessage* request);
 88 chip  1.6  
 89 kumpf 1.10     void handleModifyClassRequest(
 90 mike  1.2  	CIMModifyClassRequestMessage* request);
 91            
 92                void handleModifyInstanceRequest(
 93            	CIMModifyInstanceRequestMessage* request);
 94            
 95                void handleEnumerateClassesRequest(
 96            	CIMEnumerateClassesRequestMessage* request);
 97            
 98                void handleEnumerateClassNamesRequest(
 99            	CIMEnumerateClassNamesRequestMessage* request);
100            
101                void handleEnumerateInstancesRequest(
102            	CIMEnumerateInstancesRequestMessage* request);
103            
104                void handleEnumerateInstanceNamesRequest(
105            	CIMEnumerateInstanceNamesRequestMessage* request);
106            
107                void handleAssociatorsRequest(
108            	CIMAssociatorsRequestMessage* request);
109            
110                void handleAssociatorNamesRequest(
111 mike  1.2  	CIMAssociatorNamesRequestMessage* request);
112            
113                void handleReferencesRequest(
114            	CIMReferencesRequestMessage* request);
115            
116                void handleReferenceNamesRequest(
117            	CIMReferenceNamesRequestMessage* request);
118            
119                void handleGetPropertyRequest(
120            	CIMGetPropertyRequestMessage* request);
121            
122                void handleSetPropertyRequest(
123            	CIMSetPropertyRequestMessage* request);
124            
125                void handleGetQualifierRequest(
126            	CIMGetQualifierRequestMessage* request);
127            
128                void handleSetQualifierRequest(
129            	CIMSetQualifierRequestMessage* request);
130            
131                void handleDeleteQualifierRequest(
132 mike  1.2  	CIMDeleteQualifierRequestMessage* request);
133            
134                void handleEnumerateQualifiersRequest(
135            	CIMEnumerateQualifiersRequestMessage* request);
136            
137                void handleInvokeMethodRequest(
138            	CIMInvokeMethodRequestMessage* request);
139            
140                void handleEnableIndicationSubscriptionRequest(
141                    CIMEnableIndicationSubscriptionRequestMessage* request);
142            
143                void handleModifyIndicationSubscriptionRequest(
144                    CIMModifyIndicationSubscriptionRequestMessage* request);
145            
146                void handleDisableIndicationSubscriptionRequest(
147                    CIMDisableIndicationSubscriptionRequestMessage* request);
148            
149 kumpf 1.10     void handleProcessIndicationRequest(
150                    CIMProcessIndicationRequestMessage* request);
151            
152 chip  1.8      //void loadRegisteredProviders(void);
153 mike  1.2  
154            protected:
155 kumpf 1.10 
156 mday  1.13       String _lookupProviderForClass(
157            	 const String& nameSpace, const String& className);
158 chip  1.14 
159 mday  1.13       void _enqueueResponse(
160            	 CIMRequestMessage* request, CIMResponseMessage* response);
161 chip  1.14 
162            	/*
163            	  Message * _waitForResponse(
164 mday  1.13 	 const Uint32 messageType,
165            	 const Uint32 messageKey,
166            	 const Uint32 timeout = 0xffffffff);
167 chip  1.14 	*/
168            
169 kumpf 1.17       CIMValue _convertValueType(const CIMValue& value, CIMType type);
170            
171                  void _fixInvokeMethodParameterTypes(CIMInvokeMethodRequestMessage* request);
172            
173                  void _fixSetPropertyValueType(CIMSetPropertyRequestMessage* request);
174            
175 mday  1.13       CIMRepository * _repository;
176 chip  1.14 
177 mday  1.13       ServiceCIMOMHandle _cimom;
178 chip  1.14 
179 mday  1.13       ConfigurationManagerQueue _configurationManager;
180 chip  1.14 
181 mday  1.13       AtomicInt _dying;
182 chip  1.14 
183            	// << Tue Feb 12 08:48:09 2002 mdd >> meta dispatcher integration
184 mday  1.13       virtual void _handle_async_request(AsyncRequest *req);
185 chip  1.14 
186 mike  1.2  };
187            
188            PEGASUS_NAMESPACE_END
189            
190            #endif /* PegasusDispatcher_Dispatcher_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2