(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.6.4.2 and 1.11.4.1

version 1.6.4.2, 2007/04/04 11:04:50 version 1.11.4.1, 2007/11/09 19:05:08
Line 33 
Line 33 
  
 #include "ProviderMessageHandler.h" #include "ProviderMessageHandler.h"
  
   #include <exception>
   
 #include <Pegasus/Common/OperationContextInternal.h> #include <Pegasus/Common/OperationContextInternal.h>
 #include <Pegasus/Common/Tracer.h> #include <Pegasus/Common/Tracer.h>
 #include <Pegasus/Common/StatisticalData.h> #include <Pegasus/Common/StatisticalData.h>
Line 53 
Line 55 
 #include <Pegasus/ProviderManager2/OperationResponseHandler.h> #include <Pegasus/ProviderManager2/OperationResponseHandler.h>
 #include <Pegasus/ProviderManager2/AutoPThreadSecurity.h> #include <Pegasus/ProviderManager2/AutoPThreadSecurity.h>
  
 #define HANDLE_PROVIDER_EXCEPTION(providerCall, handler)               \  #define HANDLE_PROVIDER_CALL(traceString, providerCall, handler)       \
       do                                                                 \
       {                                                                  \
           PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,                \
               "Calling provider." #traceString ": %s",                   \
               (const char*)_fullyQualifiedProviderName.getCString()));   \
     try                                                                \     try                                                                \
     {                                                                  \     {                                                                  \
         providerCall;                                                  \         providerCall;                                                  \
     }                                                                  \     }                                                                  \
     catch (CIMException& e)                                            \     catch (CIMException& e)                                            \
     {                                                                  \     {                                                                  \
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,          \              PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,            \
             "Provider Exception: " + e.getMessage());                  \                  "Provider CIMException: %s",                           \
                   (const char*)e.getMessage().getCString()));            \
         handler.setCIMException(e);                                    \         handler.setCIMException(e);                                    \
     }                                                                  \     }                                                                  \
     catch (Exception& e)                                               \     catch (Exception& e)                                               \
     {                                                                  \     {                                                                  \
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,          \              PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,            \
             "Provider Exception: " + e.getMessage());                  \                  "Provider Exception: %s",                              \
                   (const char*)e.getMessage().getCString()));            \
         handler.setStatus(                                             \         handler.setStatus(                                             \
             CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage());  \                  CIM_ERR_FAILED,                                        \
                   e.getContentLanguages(),                               \
                   e.getMessage());                                       \
           }                                                              \
           catch (const PEGASUS_STD(exception)& e)                        \
           {                                                              \
               PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,            \
                   "Provider exception: %s", e.what()));                  \
               handler.setStatus(CIM_ERR_FAILED, e.what());               \
     }                                                                  \     }                                                                  \
     catch (...)                                                        \     catch (...)                                                        \
     {                                                                  \     {                                                                  \
         PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         \         PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         \
             "Provider Exception: Unknown");                            \                  "Provider unknown exception");                         \
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");           \         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");           \
     }          }                                                              \
           PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,                \
               "Returned from provider." #traceString ": %s",             \
               (const char*)_fullyQualifiedProviderName.getCString()));   \
       } while (0)
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
Line 100 
Line 120 
 // Default Provider Manager // Default Provider Manager
 // //
 ProviderMessageHandler::ProviderMessageHandler( ProviderMessageHandler::ProviderMessageHandler(
       const String& moduleName,
     const String& name,     const String& name,
     CIMProvider* provider,     CIMProvider* provider,
     PEGASUS_INDICATION_CALLBACK_T indicationCallback,     PEGASUS_INDICATION_CALLBACK_T indicationCallback,
     PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback,     PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback,
     Boolean subscriptionInitComplete)     Boolean subscriptionInitComplete)
     : _name(name),     : _name(name),
         _fullyQualifiedProviderName(moduleName + ":" + name),
       _provider(provider),       _provider(provider),
       _indicationCallback(indicationCallback),       _indicationCallback(indicationCallback),
       _responseChunkCallback(responseChunkCallback),       _responseChunkCallback(responseChunkCallback),
Line 135 
Line 157 
  
 void ProviderMessageHandler::initialize(CIMOMHandle& cimom) void ProviderMessageHandler::initialize(CIMOMHandle& cimom)
 { {
       PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
           "Calling provider.initialize: %s",
           (const char*)_fullyQualifiedProviderName.getCString()));
   
       try
       {
     _provider->initialize(cimom);     _provider->initialize(cimom);
 } }
       catch (...)
       {
           PEG_TRACE((TRC_DISCARDED_DATA, Tracer::LEVEL2,
               "Caught exception from provider %s initialize() method.",
               (const char*)_fullyQualifiedProviderName.getCString()));
           throw;
       }
   
       PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
           "Returned from provider.initialize: %s",
           (const char*)_fullyQualifiedProviderName.getCString()));
   }
  
 void ProviderMessageHandler::terminate() void ProviderMessageHandler::terminate()
 { {
     _disableIndications();     _disableIndications();
  
       PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
           "Calling provider.terminate: %s",
           (const char*)_fullyQualifiedProviderName.getCString()));
   
     try     try
     {     {
         _provider->terminate();         _provider->terminate();
     }     }
     catch (...)     catch (...)
     {     {
         PEG_TRACE_STRING(TRC_DISCARDED_DATA, Tracer::LEVEL2,          PEG_TRACE((TRC_DISCARDED_DATA, Tracer::LEVEL2,
             "Caught exception from provider " + _name +              "Caught exception from provider %s terminate() method.",
                 " terminate() method.");              (const char*)_fullyQualifiedProviderName.getCString()));
           throw;
     }     }
   
       PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
           "Returned from provider.terminate: %s",
           (const char*)_fullyQualifiedProviderName.getCString()));
 } }
  
 void ProviderMessageHandler::subscriptionInitComplete() void ProviderMessageHandler::subscriptionInitComplete()
Line 330 
Line 379 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.getInstance: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           getInstance,
         provider->getInstance(         provider->getInstance(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 348 
Line 395 
             request->includeClassOrigin,             request->includeClassOrigin,
             request->propertyList,             request->propertyList,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 387 
Line 434 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.enumerateInstances: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           enumerateInstances,
         provider->enumerateInstances(         provider->enumerateInstances(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 405 
Line 450 
             request->includeClassOrigin,             request->includeClassOrigin,
             request->propertyList,             request->propertyList,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 445 
Line 490 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.enumerateInstanceNames: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           enumerateInstanceNames,
         provider->enumerateInstanceNames(         provider->enumerateInstanceNames(
             providerContext,             providerContext,
             objectPath,             objectPath,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 500 
Line 543 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.createInstance: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           createInstance,
         provider->createInstance(         provider->createInstance(
             providerContext,             providerContext,
             objectPath,             objectPath,
             request->newInstance,             request->newInstance,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 556 
Line 597 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.modifyInstance: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           modifyInstance,
         provider->modifyInstance(         provider->modifyInstance(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 574 
Line 613 
             request->includeQualifiers,             request->includeQualifiers,
             request->propertyList,             request->propertyList,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 614 
Line 653 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.deleteInstance: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           deleteInstance,
         provider->deleteInstance(         provider->deleteInstance(
             providerContext,             providerContext,
             objectPath,             objectPath,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 670 
Line 707 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceQueryProvider* provider =     CIMInstanceQueryProvider* provider =
         getProviderInterface<CIMInstanceQueryProvider>(_provider);         getProviderInterface<CIMInstanceQueryProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.execQuery: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           execQuery,
         provider->execQuery(         provider->execQuery(
             providerContext,             providerContext,
             objectPath,             objectPath,
             qx,             qx,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 732 
Line 767 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMAssociationProvider* provider =     CIMAssociationProvider* provider =
         getProviderInterface<CIMAssociationProvider>(_provider);         getProviderInterface<CIMAssociationProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.associators: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           associators,
         provider->associators(         provider->associators(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 754 
Line 787 
             request->includeClassOrigin,             request->includeClassOrigin,
             request->propertyList,             request->propertyList,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 800 
Line 833 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMAssociationProvider* provider =     CIMAssociationProvider* provider =
         getProviderInterface<CIMAssociationProvider>(_provider);         getProviderInterface<CIMAssociationProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.associatorNames: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           associatorNames,
         provider->associatorNames(         provider->associatorNames(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 819 
Line 850 
             request->role,             request->role,
             request->resultRole,             request->resultRole,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 865 
Line 896 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMAssociationProvider* provider =     CIMAssociationProvider* provider =
         getProviderInterface<CIMAssociationProvider>(_provider);         getProviderInterface<CIMAssociationProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.references: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           references,
         provider->references(         provider->references(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 885 
Line 914 
             request->includeClassOrigin,             request->includeClassOrigin,
             request->propertyList,             request->propertyList,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 931 
Line 960 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMAssociationProvider* provider =     CIMAssociationProvider* provider =
         getProviderInterface<CIMAssociationProvider>(_provider);         getProviderInterface<CIMAssociationProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.referenceNames: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           referenceNames,
         provider->referenceNames(         provider->referenceNames(
             providerContext,             providerContext,
             objectPath,             objectPath,
             request->resultClass,             request->resultClass,
             request->role,             request->role,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 1016 
Line 1043 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(getInstanceRequest.operationContext));         _createProviderOperationContext(getInstanceRequest.operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.getInstance: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           getInstance,
         provider->getInstance(         provider->getInstance(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 1034 
Line 1059 
             getInstanceRequest.includeClassOrigin,             getInstanceRequest.includeClassOrigin,
             getInstanceRequest.propertyList,             getInstanceRequest.propertyList,
             handler),             handler),
         handler)          handler);
  
     //     //
     // Copy the GetInstance response into the GetProperty response message     // Copy the GetInstance response into the GetProperty response message
Line 1131 
Line 1156 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.modifyInstance: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           modifyInstance,
         provider->modifyInstance(         provider->modifyInstance(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 1149 
Line 1172 
             modifyInstanceRequest.includeQualifiers,             modifyInstanceRequest.includeQualifiers,
             modifyInstanceRequest.propertyList,             modifyInstanceRequest.propertyList,
             handler),             handler),
         handler)          handler);
  
     //     //
     // Copy the ModifyInstance response into the GetProperty response message     // Copy the ModifyInstance response into the GetProperty response message
Line 1196 
Line 1219 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMMethodProvider* provider =     CIMMethodProvider* provider =
         getProviderInterface<CIMMethodProvider>(_provider);         getProviderInterface<CIMMethodProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.invokeMethod: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           invokeMethod,
         provider->invokeMethod(         provider->invokeMethod(
             providerContext,             providerContext,
             objectPath,             objectPath,
             request->methodName,             request->methodName,
             request->inParameters,             request->inParameters,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 1287 
Line 1308 
     providerContext.insert(request->operationContext.get(     providerContext.insert(request->operationContext.get(
         SubscriptionFilterQueryContainer::NAME));         SubscriptionFilterQueryContainer::NAME));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMIndicationProvider* provider =     CIMIndicationProvider* provider =
         getProviderInterface<CIMIndicationProvider>(_provider);         getProviderInterface<CIMIndicationProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.createSubscription: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           createSubscription,
         provider->createSubscription(         provider->createSubscription(
             providerContext,             providerContext,
             request->subscriptionInstance.getPath(),             request->subscriptionInstance.getPath(),
             classNames,             classNames,
             request->propertyList,             request->propertyList,
             request->repeatNotificationPolicy),             request->repeatNotificationPolicy),
         handler)          handler);
  
     //     //
     //  Increment count of current subscriptions for this provider     //  Increment count of current subscriptions for this provider
Line 1390 
Line 1409 
     providerContext.insert(request->operationContext.get(     providerContext.insert(request->operationContext.get(
         SubscriptionFilterQueryContainer::NAME));         SubscriptionFilterQueryContainer::NAME));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMIndicationProvider* provider =     CIMIndicationProvider* provider =
         getProviderInterface<CIMIndicationProvider>(_provider);         getProviderInterface<CIMIndicationProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.modifySubscription: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           modifySubscription,
         provider->modifySubscription(         provider->modifySubscription(
             providerContext,             providerContext,
             request->subscriptionInstance.getPath(),             request->subscriptionInstance.getPath(),
             classNames,             classNames,
             request->propertyList,             request->propertyList,
             request->repeatNotificationPolicy),             request->repeatNotificationPolicy),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 1468 
Line 1485 
     providerContext.insert(request->operationContext.get(     providerContext.insert(request->operationContext.get(
         SubscriptionInstanceContainer::NAME));         SubscriptionInstanceContainer::NAME));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMIndicationProvider* provider =     CIMIndicationProvider* provider =
         getProviderInterface<CIMIndicationProvider>(_provider);         getProviderInterface<CIMIndicationProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.deleteSubscription: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           deleteSubscription,
         provider->deleteSubscription(         provider->deleteSubscription(
             providerContext,             providerContext,
             request->subscriptionInstance.getPath(),             request->subscriptionInstance.getPath(),
             classNames),             classNames),
         handler)          handler);
  
     //     //
     //  Decrement count of current subscriptions for this provider     //  Decrement count of current subscriptions for this provider
Line 1539 
Line 1554 
     CIMIndicationConsumerProvider* provider =     CIMIndicationConsumerProvider* provider =
         getProviderInterface<CIMIndicationConsumerProvider>(_provider);         getProviderInterface<CIMIndicationConsumerProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.consumeIndication: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           consumeIndication,
         provider->consumeIndication(         provider->consumeIndication(
             providerContext,             providerContext,
             request->destinationPath,             request->destinationPath,
             request->indicationInstance),             request->indicationInstance),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 1577 
Line 1590 
         CIMIndicationProvider* provider =         CIMIndicationProvider* provider =
             getProviderInterface<CIMIndicationProvider>(_provider);             getProviderInterface<CIMIndicationProvider>(_provider);
  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,          PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Calling provider.enableIndications: " + _name);              "Calling provider.enableIndications: %s",
               (const char*)_fullyQualifiedProviderName.getCString()));
  
           try
           {
         provider->enableIndications(*indicationResponseHandler);         provider->enableIndications(*indicationResponseHandler);
     }     }
           catch (...)
           {
               PEG_TRACE((TRC_DISCARDED_DATA, Tracer::LEVEL2,
                   "Caught exception from provider %s "
                       "enableIndications() method.",
                   (const char*)_fullyQualifiedProviderName.getCString()));
               throw;
           }
   
           PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
               "Returned from provider.enableIndications: %s",
               (const char*)_fullyQualifiedProviderName.getCString()));
       }
     catch (Exception& e)     catch (Exception& e)
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2,
Line 1591 
Line 1620 
             "ProviderManager.Default.DefaultProviderManager."             "ProviderManager.Default.DefaultProviderManager."
                 "ENABLE_INDICATIONS_FAILED",                 "ENABLE_INDICATIONS_FAILED",
             "Failed to enable indications for provider $0: $1.",             "Failed to enable indications for provider $0: $1.",
             _name, e.getMessage());               _fullyQualifiedProviderName, e.getMessage());
     }     }
     catch(...)     catch(...)
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2,          PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2,
             "Unexpected error in _enableIndications");             "Unexpected error in _enableIndications");
  
         Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::WARNING,         Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::WARNING,
             "ProviderManager.Default.DefaultProviderManager."             "ProviderManager.Default.DefaultProviderManager."
                 "ENABLE_INDICATIONS_FAILED_UNKNOWN",                 "ENABLE_INDICATIONS_FAILED_UNKNOWN",
             "Failed to enable indications for provider $0.",             "Failed to enable indications for provider $0.",
             _name);              _fullyQualifiedProviderName);
     }     }
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
Line 1620 
Line 1649 
             CIMIndicationProvider* provider =             CIMIndicationProvider* provider =
                 getProviderInterface<CIMIndicationProvider>(_provider);                 getProviderInterface<CIMIndicationProvider>(_provider);
  
             PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,              PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                 "Calling provider.disableIndications: " + _name);                  "Calling provider.disableIndications: %s",
                   (const char*)_fullyQualifiedProviderName.getCString()));
  
             try             try
             {             {
Line 1629 
Line 1659 
             }             }
             catch (...)             catch (...)
             {             {
                 PEG_TRACE_STRING(TRC_DISCARDED_DATA, Tracer::LEVEL2,                  PEG_TRACE((TRC_DISCARDED_DATA, Tracer::LEVEL2,
                     "Caught exception from provider " + _name +                      "Caught exception from provider %s "
                         " disableIndications() method.");                          "disableIndications() method.",
                       (const char*)_fullyQualifiedProviderName.getCString()));
                   throw;
             }             }
  
               PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                   "Returned from  provider.disableIndications: %s",
                   (const char*)_fullyQualifiedProviderName.getCString()));
   
             status.setIndicationsEnabled(false);             status.setIndicationsEnabled(false);
  
             status.resetSubscriptions();             status.resetSubscriptions();
  
             PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,              PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                 "Destroying indication response handler for " + _name);                  "Destroying indication response handler for %s",
                   (const char*)_fullyQualifiedProviderName.getCString()));
  
             delete _indicationResponseHandler;             delete _indicationResponseHandler;
             _indicationResponseHandler = 0;             _indicationResponseHandler = 0;
Line 1647 
Line 1684 
     }     }
     catch(...)     catch(...)
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL3,          PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL3,
             "Error occured disabling indications in provider " + _name);              "Error occured disabling indications in provider %s",
               (const char*)_fullyQualifiedProviderName.getCString()));
     }     }
       PEG_METHOD_EXIT();
 } }
   
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END


Legend:
Removed from v.1.6.4.2  
changed lines
  Added in v.1.11.4.1

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2