(file) Return to ProviderMessageHandler.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / ProviderManager2 / Default

Diff for /pegasus/src/Pegasus/ProviderManager2/Default/ProviderMessageHandler.cpp between version 1.1 and 1.2

version 1.1, 2006/08/29 17:48:56 version 1.2, 2006/09/01 17:51:30
Line 76 
Line 76 
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
 // auto variable to protect provider during operations  
 class pm_service_op_lock  
 {  
 public:  
     pm_service_op_lock(ProviderStatus *providerStatus)  
     : _providerStatus(providerStatus)  
     {  
         _providerStatus->protect();  
     }  
   
     ~pm_service_op_lock()  
     {  
         _providerStatus->unprotect();  
     }  
   
 private:  
     pm_service_op_lock();  
     pm_service_op_lock(const pm_service_op_lock&);  
     pm_service_op_lock& operator=(const pm_service_op_lock&);  
   
     ProviderStatus* _providerStatus;  
 };  
   
 class op_counter  
 {  
 public:  
     op_counter(AtomicInt* counter)  
         : _counter(counter)  
     {  
         (*_counter)++;  
     }  
   
     ~op_counter()  
     {  
         (*_counter)--;  
     }  
   
 private:  
     op_counter();  
     op_counter(const op_counter&);  
     op_counter& operator=(const op_counter&);  
   
     AtomicInt* _counter;  
 };  
   
 template<class T> template<class T>
 inline T* getProviderInterface(CIMProvider* provider) inline T* getProviderInterface(CIMProvider* provider)
 { {
Line 176 
Line 131 
 void ProviderMessageHandler::terminate() void ProviderMessageHandler::terminate()
 { {
     _disableIndications();     _disableIndications();
   
       try
       {
     _provider->terminate();     _provider->terminate();
 } }
       catch (...)
       {
           PEG_TRACE_STRING(TRC_DISCARDED_DATA, Tracer::LEVEL2,
               "Caught exception from provider " + _name +
                   " terminate() method.");
       }
   }
  
 void ProviderMessageHandler::subscriptionInitComplete() void ProviderMessageHandler::subscriptionInitComplete()
 { {
Line 195 
Line 160 
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,
         "ProviderMessageHandler::processMessage()");         "ProviderMessageHandler::processMessage()");
  
     op_counter ops(&status._currentOperations);  
   
     CIMResponseMessage* response = 0;     CIMResponseMessage* response = 0;
  
     // pass the request message to a handler method based on message type     // pass the request message to a handler method based on message type
Line 305 
Line 268 
  
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
               Logger::TRACE,
             "ProviderMessageHandler::_handleGetInstanceRequest - "             "ProviderMessageHandler::_handleGetInstanceRequest - "
                 "Host name: $0  Name space: $1  Class name: $2",                 "Host name: $0  Name space: $1  Class name: $2",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             request->instanceName.getClassName().getString());              request->instanceName.getClassName().getString()));
  
         // make target object path         // make target object path
         CIMObjectPath objectPath(         CIMObjectPath objectPath(
Line 332 
Line 296 
  
         AutoPThreadSecurity threadLevelSecurity(context);         AutoPThreadSecurity threadLevelSecurity(context);
  
         pm_service_op_lock op_lock(&status);  
   
         StatProviderTimeMeasurement providerTime(response);         StatProviderTimeMeasurement providerTime(response);
  
         CIMInstanceProvider* provider =         CIMInstanceProvider* provider =
Line 401 
Line 363 
  
         AutoPThreadSecurity threadLevelSecurity(context);         AutoPThreadSecurity threadLevelSecurity(context);
  
         pm_service_op_lock op_lock(&status);  
   
         StatProviderTimeMeasurement providerTime(response);         StatProviderTimeMeasurement providerTime(response);
  
         CIMInstanceProvider* provider =         CIMInstanceProvider* provider =
Line 473 
Line 433 
  
         AutoPThreadSecurity threadLevelSecurity(context);         AutoPThreadSecurity threadLevelSecurity(context);
  
         pm_service_op_lock op_lock(&status);  
   
         StatProviderTimeMeasurement providerTime(response);         StatProviderTimeMeasurement providerTime(response);
  
         CIMInstanceProvider* provider =         CIMInstanceProvider* provider =
Line 543 
Line 501 
  
         AutoPThreadSecurity threadLevelSecurity(context);         AutoPThreadSecurity threadLevelSecurity(context);
  
         pm_service_op_lock op_lock(&status);  
   
         StatProviderTimeMeasurement providerTime(response);         StatProviderTimeMeasurement providerTime(response);
  
         CIMInstanceProvider* provider =         CIMInstanceProvider* provider =
Line 614 
Line 570 
  
         AutoPThreadSecurity threadLevelSecurity(context);         AutoPThreadSecurity threadLevelSecurity(context);
  
         pm_service_op_lock op_lock(&status);  
   
         StatProviderTimeMeasurement providerTime(response);         StatProviderTimeMeasurement providerTime(response);
  
         CIMInstanceProvider* provider =         CIMInstanceProvider* provider =
Line 687 
Line 641 
  
         AutoPThreadSecurity threadLevelSecurity(context);         AutoPThreadSecurity threadLevelSecurity(context);
  
         pm_service_op_lock op_lock(&status);  
   
         StatProviderTimeMeasurement providerTime(response);         StatProviderTimeMeasurement providerTime(response);
  
         CIMInstanceProvider* provider =         CIMInstanceProvider* provider =
Line 757 
Line 709 
  
         AutoPThreadSecurity threadLevelSecurity(context);         AutoPThreadSecurity threadLevelSecurity(context);
  
         pm_service_op_lock op_lock(&status);  
   
         StatProviderTimeMeasurement providerTime(response);         StatProviderTimeMeasurement providerTime(response);
  
         CIMInstanceQueryProvider* provider =         CIMInstanceQueryProvider* provider =
Line 832 
Line 782 
  
         StatProviderTimeMeasurement providerTime(response);         StatProviderTimeMeasurement providerTime(response);
  
         pm_service_op_lock op_lock(&status);  
   
         CIMAssociationProvider* provider =         CIMAssociationProvider* provider =
             getProviderInterface<CIMAssociationProvider>(_provider);             getProviderInterface<CIMAssociationProvider>(_provider);
  
Line 911 
Line 859 
  
         StatProviderTimeMeasurement providerTime(response);         StatProviderTimeMeasurement providerTime(response);
  
         pm_service_op_lock op_lock(&status);  
   
         CIMAssociationProvider* provider =         CIMAssociationProvider* provider =
             getProviderInterface<CIMAssociationProvider>(_provider);             getProviderInterface<CIMAssociationProvider>(_provider);
  
Line 990 
Line 936 
  
         StatProviderTimeMeasurement providerTime(response);         StatProviderTimeMeasurement providerTime(response);
  
         pm_service_op_lock op_lock(&status);  
   
         CIMAssociationProvider* provider =         CIMAssociationProvider* provider =
             getProviderInterface<CIMAssociationProvider>(_provider);             getProviderInterface<CIMAssociationProvider>(_provider);
  
Line 1070 
Line 1014 
  
         StatProviderTimeMeasurement providerTime(response);         StatProviderTimeMeasurement providerTime(response);
  
         pm_service_op_lock op_lock(&status);  
   
         CIMAssociationProvider* provider =         CIMAssociationProvider* provider =
             getProviderInterface<CIMAssociationProvider>(_provider);             getProviderInterface<CIMAssociationProvider>(_provider);
  
Line 1110 
Line 1052 
  
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
               Logger::TRACE,
             "ProviderMessageHandler::_handleGetPropertyRequest - "             "ProviderMessageHandler::_handleGetPropertyRequest - "
                 "Host name: $0  Name space: $1  Class name: $2  Property: $3",                 "Host name: $0  Name space: $1  Class name: $2  Property: $3",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             request->instanceName.getClassName().getString(),             request->instanceName.getClassName().getString(),
             request->propertyName.getString());              request->propertyName.getString()));
  
         // make target object path         // make target object path
         CIMObjectPath objectPath(         CIMObjectPath objectPath(
Line 1141 
Line 1084 
  
         AutoPThreadSecurity threadLevelSecurity(context);         AutoPThreadSecurity threadLevelSecurity(context);
  
         pm_service_op_lock op_lock(&status);  
   
         StatProviderTimeMeasurement providerTime(response);         StatProviderTimeMeasurement providerTime(response);
  
         CIMInstanceProvider* provider =         CIMInstanceProvider* provider =
Line 1223 
Line 1164 
  
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
               Logger::TRACE,
             "ProviderMessageHandler::_handleSetPropertyRequest - "             "ProviderMessageHandler::_handleSetPropertyRequest - "
                 "Host name: $0  Name space: $1  Class name: $2  Property: $3",                 "Host name: $0  Name space: $1  Class name: $2  Property: $3",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             request->instanceName.getClassName().getString(),             request->instanceName.getClassName().getString(),
             request->propertyName.getString());              request->propertyName.getString()));
  
         // make target object path         // make target object path
         CIMObjectPath objectPath(         CIMObjectPath objectPath(
Line 1258 
Line 1200 
  
         AutoPThreadSecurity threadLevelSecurity(context);         AutoPThreadSecurity threadLevelSecurity(context);
  
         pm_service_op_lock op_lock(&status);  
   
         StatProviderTimeMeasurement providerTime(response);         StatProviderTimeMeasurement providerTime(response);
  
         CIMInstanceProvider* provider =         CIMInstanceProvider* provider =
Line 1356 
Line 1296 
  
         StatProviderTimeMeasurement providerTime(response);         StatProviderTimeMeasurement providerTime(response);
  
         pm_service_op_lock op_lock(&status);  
   
         CIMMethodProvider* provider =         CIMMethodProvider* provider =
             getProviderInterface<CIMMethodProvider>(_provider);             getProviderInterface<CIMMethodProvider>(_provider);
  
Line 1450 
Line 1388 
  
         AutoPThreadSecurity threadLevelSecurity(context);         AutoPThreadSecurity threadLevelSecurity(context);
  
         pm_service_op_lock op_lock(&status);  
   
         CIMIndicationProvider* provider =         CIMIndicationProvider* provider =
             getProviderInterface<CIMIndicationProvider>(_provider);             getProviderInterface<CIMIndicationProvider>(_provider);
  
Line 1553 
Line 1489 
  
         AutoPThreadSecurity threadLevelSecurity(context);         AutoPThreadSecurity threadLevelSecurity(context);
  
         pm_service_op_lock op_lock(&status);  
   
         CIMIndicationProvider* provider =         CIMIndicationProvider* provider =
             getProviderInterface<CIMIndicationProvider>(_provider);             getProviderInterface<CIMIndicationProvider>(_provider);
  
Line 1637 
Line 1571 
  
         AutoPThreadSecurity threadLevelSecurity(context);         AutoPThreadSecurity threadLevelSecurity(context);
  
         pm_service_op_lock op_lock(&status);  
   
         CIMIndicationProvider* provider =         CIMIndicationProvider* provider =
             getProviderInterface<CIMIndicationProvider>(_provider);             getProviderInterface<CIMIndicationProvider>(_provider);
  
Line 1707 
Line 1639 
  
         StatProviderTimeMeasurement providerTime(response);         StatProviderTimeMeasurement providerTime(response);
  
         pm_service_op_lock op_lock(&status);  
   
         CIMIndicationConsumerProvider* provider =         CIMIndicationConsumerProvider* provider =
             getProviderInterface<CIMIndicationConsumerProvider>(_provider);             getProviderInterface<CIMIndicationConsumerProvider>(_provider);
  
Line 1741 
Line 1671 
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Calling provider.enableIndications: " + _name);             "Calling provider.enableIndications: " + _name);
  
         pm_service_op_lock op_lock(&status);          status.setIndicationsEnabled(true);
   
         status.protect();  
   
         status._indicationsEnabled = true;  
  
         CIMIndicationProvider* provider =         CIMIndicationProvider* provider =
             getProviderInterface<CIMIndicationProvider>(_provider);             getProviderInterface<CIMIndicationProvider>(_provider);
Line 1754 
Line 1680 
  
         _indicationResponseHandler = indicationResponseHandler;         _indicationResponseHandler = indicationResponseHandler;
     }     }
     catch (CIMException& e)  
     {  
         PEG_TRACE_STRING (TRC_PROVIDERMANAGER, Tracer::LEVEL2,  
             "CIMException: " + e.getMessage ());  
   
         Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::WARNING,  
             "ProviderManager.Default.DefaultProviderManager."  
                 "ENABLE_INDICATIONS_FAILED",  
             "Failed to enable indications for provider $0: $1.",  
             _name, e.getMessage());  
     }  
     catch (Exception& e)     catch (Exception& e)
     {     {
         PEG_TRACE_STRING (TRC_PROVIDERMANAGER, Tracer::LEVEL2,         PEG_TRACE_STRING (TRC_PROVIDERMANAGER, Tracer::LEVEL2,
Line 1798 
Line 1713 
  
     try     try
     {     {
         if (status._indicationsEnabled)          if (status.getIndicationsEnabled())
         {         {
             pm_service_op_lock op_lock(&status);  
   
             CIMIndicationProvider* provider =             CIMIndicationProvider* provider =
                 getProviderInterface<CIMIndicationProvider>(_provider);                 getProviderInterface<CIMIndicationProvider>(_provider);
  
               try
               {
             provider->disableIndications();             provider->disableIndications();
               }
               catch (...)
               {
                   PEG_TRACE_STRING(TRC_DISCARDED_DATA, Tracer::LEVEL2,
                       "Caught exception from provider " + _name +
                           " terminate() method.");
               }
  
             status._indicationsEnabled = false;              status.setIndicationsEnabled(false);
   
             status.unprotect();  
  
             status.resetSubscriptions();             status.resetSubscriptions();
  


Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2