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

Diff for /pegasus/src/Pegasus/ProviderManager2/Default/DefaultProviderManager.cpp between version 1.34 and 1.63

version 1.34, 2004/06/10 08:57:32 version 1.63, 2006/06/19 20:47:40
Line 1 
Line 1 
 //%2003////////////////////////////////////////////////////////////////////////  //%2006////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002  BMC Software, Hewlett-Packard Development  // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
 // Company, L. P., IBM Corp., The Open Group, Tivoli Systems.  // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.; // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.;
 // IBM Corp.; EMC Corporation, The Open Group. // IBM Corp.; EMC Corporation, The Open Group.
   // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; Symantec Corporation; The Open Group.
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to // of this software and associated documentation files (the "Software"), to
Line 32 
Line 38 
 //              Yi Zhou, Hewlett-Packard Company (yi_zhou@hp.com) //              Yi Zhou, Hewlett-Packard Company (yi_zhou@hp.com)
 //              Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com) //              Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
 //                              Seema Gupta (gseema@in.ibm.com) for PEP135 //                              Seema Gupta (gseema@in.ibm.com) for PEP135
   //              Willis White (whiwill@us.ibm.com)
   //              Josephine Eskaline Joyce (jojustin@in.ibm.com) for PEP#101
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 39 
Line 47 
  
 #include <Pegasus/Common/CIMMessage.h> #include <Pegasus/Common/CIMMessage.h>
 #include <Pegasus/Common/OperationContext.h> #include <Pegasus/Common/OperationContext.h>
 #include <Pegasus/Common/Destroyer.h>  
 #include <Pegasus/Common/Tracer.h> #include <Pegasus/Common/Tracer.h>
 #include <Pegasus/Common/StatisticalData.h> #include <Pegasus/Common/StatisticalData.h>
 #include <Pegasus/Common/Logger.h> #include <Pegasus/Common/Logger.h>
 #include <Pegasus/Common/MessageLoader.h> //l10n #include <Pegasus/Common/MessageLoader.h> //l10n
   #include <Pegasus/Common/Constants.h>
  
 #include <Pegasus/Common/QueryExpression.h>  #include <Pegasus/Query/QueryExpression/QueryExpression.h>
 #include <Pegasus/ProviderManager2/QueryExpressionFactory.h> #include <Pegasus/ProviderManager2/QueryExpressionFactory.h>
  
 #include <Pegasus/ProviderManager2/Default/Provider.h> #include <Pegasus/ProviderManager2/Default/Provider.h>
Line 54 
Line 62 
 #include <Pegasus/ProviderManager2/ProviderManagerService.h> #include <Pegasus/ProviderManager2/ProviderManagerService.h>
 #include <Pegasus/ProviderManager2/ProviderType.h> #include <Pegasus/ProviderManager2/ProviderType.h>
  
   #define HandleCatch(handler)                                                   \
   catch(CIMException & e)                                                        \
   {                                                                              \
       PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,                      \
                        "Exception: " + e.getMessage());                          \
       handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage());   \
   }                                                                              \
       catch(Exception & e)                                                       \
   {                                                                              \
       PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,                      \
                        "Exception: " + e.getMessage());                          \
       handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage());\
   }                                                                              \
       catch(...)                                                                 \
   {                                                                              \
       PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,                      \
                        "Exception: Unknown");                                    \
       handler.setStatus(CIM_ERR_FAILED, "Unknown error.");                       \
   }                                                                              \
   STAT_RESPONSEEND
   
   
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
 // auto variable to protect provider during operations // auto variable to protect provider during operations
Line 77 
Line 107 
 }; };
  
 // //
 // Provider module status  
 //  
 static const Uint16 _MODULE_OK       = 2;  
 static const Uint16 _MODULE_STOPPING = 9;  
 static const Uint16 _MODULE_STOPPED  = 10;  
   
   
 //  
 // Default Provider Manager // Default Provider Manager
 // //
 DefaultProviderManager::DefaultProviderManager(void) DefaultProviderManager::DefaultProviderManager(void)
 { {
       _subscriptionInitComplete = false;
 } }
  
 DefaultProviderManager::~DefaultProviderManager(void) DefaultProviderManager::~DefaultProviderManager(void)
Line 173 
Line 196 
         response = handleDeleteSubscriptionRequest(request);         response = handleDeleteSubscriptionRequest(request);
  
         break;         break;
     case CIM_ENABLE_INDICATIONS_REQUEST_MESSAGE:  
         response = handleEnableIndicationsRequest(request);  
   
         break;  
     case CIM_DISABLE_INDICATIONS_REQUEST_MESSAGE:  
         response = handleDisableIndicationsRequest(request);  
   
         break;  
     case CIM_EXPORT_INDICATION_REQUEST_MESSAGE:     case CIM_EXPORT_INDICATION_REQUEST_MESSAGE:
         response = handleExportIndicationRequest(request);         response = handleExportIndicationRequest(request);
         break;         break;
Line 201 
Line 216 
         response = handleInitializeProviderRequest(request);         response = handleInitializeProviderRequest(request);
  
         break;         break;
       case CIM_SUBSCRIPTION_INIT_COMPLETE_REQUEST_MESSAGE:
           response = handleSubscriptionInitCompleteRequest (request);
   
           break;
     default:     default:
         response = handleUnsupportedRequest(request);         response = handleUnsupportedRequest(request);
  
Line 235 
Line 254 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     CIMInitializeProviderResponseMessage * response =     CIMInitializeProviderResponseMessage * response =
         new CIMInitializeProviderResponseMessage(          dynamic_cast<CIMInitializeProviderResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),      PEGASUS_ASSERT(response != 0);
         request->queueIds.copyAndPop());  
   
     // preserve message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request  
     response->setHttpMethod(request->getHttpMethod());  
  
     OperationResponseHandler handler(request, response);      OperationResponseHandler handler(
           request, response, _responseChunkCallback);
  
     try     try
     {     {
Line 255 
Line 268 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(),              name.getPhysicalName(), name.getLogicalName());
                 name.getLogicalName(), String::EMPTY);  
   
     }     }
     catch(CIMException & e)     catch(CIMException & e)
     {     {
Line 297 
Line 308 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     CIMGetInstanceResponseMessage * response =     CIMGetInstanceResponseMessage * response =
         new CIMGetInstanceResponseMessage(          dynamic_cast<CIMGetInstanceResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop(),  
         CIMInstance());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request  
     response->setHttpMethod(request->getHttpMethod());  
   
     // create a handler for this request     // create a handler for this request
     GetInstanceResponseHandler handler(request, response);      GetInstanceResponseHandler handler(
           request, response, _responseChunkCallback);
  
     try     try
     {     {
Line 334 
Line 336 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 353 
Line 355 
  
         pm_service_op_lock op_lock(&ph.GetProvider());         pm_service_op_lock op_lock(&ph.GetProvider());
  
         STAT_GETSTARTTIME;          STAT_PMS_PROVIDERSTART;
  
         ph.GetProvider().getInstance(         ph.GetProvider().getInstance(
             context,             context,
Line 362 
Line 364 
             request->includeClassOrigin,             request->includeClassOrigin,
             propertyList,             propertyList,
             handler);             handler);
   
         STAT_PMS_PROVIDEREND;  
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
   
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");  
     }     }
       HandleCatch(handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
       STAT_COPYDISPATCHER
   
     return(response);     return(response);
 } }
  
Line 402 
Line 384 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     CIMEnumerateInstancesResponseMessage * response =     CIMEnumerateInstancesResponseMessage * response =
         new CIMEnumerateInstancesResponseMessage(          dynamic_cast<CIMEnumerateInstancesResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop(),  
         Array<CIMInstance>());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request  
     response->setHttpMethod (request->getHttpMethod ());  
   
     // create a handler for this request     // create a handler for this request
     EnumerateInstancesResponseHandler handler(request, response);      EnumerateInstancesResponseHandler handler(
           request, response, _responseChunkCallback);
  
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleEnumerateInstancesRequest - Host name: $0  Name space: $1  Class name: $2",              Logger::TRACE,
               "DefaultProviderManager::handleEnumerateInstancesRequest - "
               "Host name: $0  Name space: $1  Class name: $2",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             request->className.getString());              request->className.getString()));
  
         // make target object path         // make target object path
         CIMObjectPath objectPath(         CIMObjectPath objectPath(
Line 438 
Line 413 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph = providerManager.getProvider(name.getPhysicalName(),          OpProviderHolder ph = providerManager.getProvider(
                 name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 457 
Line 432 
  
         pm_service_op_lock op_lock(&ph.GetProvider());         pm_service_op_lock op_lock(&ph.GetProvider());
  
         STAT_GETSTARTTIME;          STAT_PMS_PROVIDERSTART;
  
         ph.GetProvider().enumerateInstances(         ph.GetProvider().enumerateInstances(
             context,             context,
Line 466 
Line 441 
             request->includeClassOrigin,             request->includeClassOrigin,
             propertyList,             propertyList,
             handler);             handler);
   
         STAT_PMS_PROVIDEREND;  
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
   
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");  
     }     }
       HandleCatch(handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
        STAT_COPYDISPATCHER
   
     return(response);     return(response);
 } }
  
Line 506 
Line 461 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     CIMEnumerateInstanceNamesResponseMessage * response =     CIMEnumerateInstanceNamesResponseMessage * response =
         new CIMEnumerateInstanceNamesResponseMessage(          dynamic_cast<CIMEnumerateInstanceNamesResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop(),  
         Array<CIMObjectPath>());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key  
     response->setKey(request->getKey());  
   
     //set HTTP method in response from request  
     response->setHttpMethod(request->getHttpMethod());;  
   
     // create a handler for this request     // create a handler for this request
     EnumerateInstanceNamesResponseHandler handler(request, response);      EnumerateInstanceNamesResponseHandler handler(
           request, response, _responseChunkCallback);
  
     // process the request     // process the request
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleEnumerateInstanceNamesRequest - Host name: $0  Name space: $1  Class name: $2",              Logger::TRACE,
               "DefaultProviderManager::handleEnumerateInstanceNamesRequest - "
               "Host name: $0  Name space: $1  Class name: $2",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             request->className.getString());              request->className.getString()));
  
         // make target object path         // make target object path
         CIMObjectPath objectPath(         CIMObjectPath objectPath(
Line 543 
Line 491 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName());              name.getPhysicalName(), name.getLogicalName());
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 560 
Line 508 
  
         pm_service_op_lock op_lock(&ph.GetProvider());         pm_service_op_lock op_lock(&ph.GetProvider());
  
         STAT_GETSTARTTIME;          STAT_PMS_PROVIDERSTART;
  
         ph.GetProvider().enumerateInstanceNames(         ph.GetProvider().enumerateInstanceNames(
             context,             context,
             objectPath,             objectPath,
             handler);             handler);
   
         STAT_PMS_PROVIDEREND;  
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
   
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");  
     }     }
       HandleCatch(handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
       STAT_COPYDISPATCHER
   
     return(response);     return(response);
 } }
  
Line 607 
Line 535 
  
     // create response message     // create response message
     CIMCreateInstanceResponseMessage * response =     CIMCreateInstanceResponseMessage * response =
         new CIMCreateInstanceResponseMessage(          dynamic_cast<CIMCreateInstanceResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop(),  
         CIMObjectPath());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request  
     response->setHttpMethod (request->getHttpMethod ());  
   
     // create a handler for this request     // create a handler for this request
     CreateInstanceResponseHandler handler(request, response);      CreateInstanceResponseHandler handler(
           request, response, _responseChunkCallback);
  
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleCreateInstanceRequest - Host name: $0  Name space: $1  Class name: $2",              Logger::TRACE,
               "DefaultProviderManager::handleCreateInstanceRequest - "
               "Host name: $0  Name space: $1  Class name: $2",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             request->newInstance.getPath().getClassName().getString());              request->newInstance.getPath().getClassName().getString()));
  
         // make target object path         // make target object path
         CIMObjectPath objectPath(         CIMObjectPath objectPath(
Line 644 
Line 565 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 661 
Line 582 
  
         pm_service_op_lock op_lock(&ph.GetProvider());         pm_service_op_lock op_lock(&ph.GetProvider());
  
         STAT_GETSTARTTIME;          STAT_PMS_PROVIDERSTART;
  
         ph.GetProvider().createInstance(         ph.GetProvider().createInstance(
             context,             context,
             objectPath,             objectPath,
             request->newInstance,             request->newInstance,
             handler);             handler);
   
         STAT_PMS_PROVIDEREND;  
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
   
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");  
     }     }
       HandleCatch(handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
       STAT_COPYDISPATCHER
   
     return(response);     return(response);
 } }
  
Line 709 
Line 610 
  
     // create response message     // create response message
     CIMModifyInstanceResponseMessage * response =     CIMModifyInstanceResponseMessage * response =
         new CIMModifyInstanceResponseMessage(          dynamic_cast<CIMModifyInstanceResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request  
     response->setHttpMethod (request->getHttpMethod ());  
   
     // create a handler for this request     // create a handler for this request
     ModifyInstanceResponseHandler handler(request, response);      ModifyInstanceResponseHandler handler(
           request, response, _responseChunkCallback);
  
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleModifyInstanceRequest - Host name: $0  Name space: $1  Class name: $2",              Logger::TRACE,
               "DefaultProviderManager::handleModifyInstanceRequest - "
               "Host name: $0  Name space: $1  Class name: $2",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             request->modifiedInstance.getPath().getClassName().getString());              request->modifiedInstance.getPath().getClassName().getString()));
  
         // make target object path         // make target object path
         CIMObjectPath objectPath(         CIMObjectPath objectPath(
Line 745 
Line 640 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 764 
Line 659 
  
         pm_service_op_lock op_lock(&ph.GetProvider());         pm_service_op_lock op_lock(&ph.GetProvider());
  
         STAT_GETSTARTTIME;          STAT_PMS_PROVIDERSTART;
  
         ph.GetProvider().modifyInstance(         ph.GetProvider().modifyInstance(
             context,             context,
Line 773 
Line 668 
             request->includeQualifiers,             request->includeQualifiers,
             propertyList,             propertyList,
             handler);             handler);
   
         STAT_PMS_PROVIDEREND;  
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
   
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");  
     }     }
       HandleCatch(handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
       STAT_COPYDISPATCHER
   
     return(response);     return(response);
 } }
  
Line 814 
Line 689 
  
     // create response message     // create response message
     CIMDeleteInstanceResponseMessage * response =     CIMDeleteInstanceResponseMessage * response =
         new CIMDeleteInstanceResponseMessage(          dynamic_cast<CIMDeleteInstanceResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request  
     response->setHttpMethod (request->getHttpMethod ());  
   
     // create a handler for this request     // create a handler for this request
     DeleteInstanceResponseHandler handler(request, response);      DeleteInstanceResponseHandler handler(
           request, response, _responseChunkCallback);
  
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleDeleteInstanceRequest - Host name: $0  Name space: $1  Class name: $2",              Logger::TRACE,
               "DefaultProviderManager::handleDeleteInstanceRequest - "
               "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 850 
Line 719 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 867 
Line 736 
  
         pm_service_op_lock op_lock(&ph.GetProvider());         pm_service_op_lock op_lock(&ph.GetProvider());
  
         STAT_GETSTARTTIME;          STAT_PMS_PROVIDERSTART;
  
         ph.GetProvider().deleteInstance(         ph.GetProvider().deleteInstance(
             context,             context,
             objectPath,             objectPath,
             handler);             handler);
   
         STAT_PMS_PROVIDEREND;  
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
   
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");  
     }     }
       HandleCatch(handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
       STAT_COPYDISPATCHER
   
     return(response);     return(response);
 } }
  
Line 913 
Line 762 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     CIMExecQueryResponseMessage * response =     CIMExecQueryResponseMessage * response =
         new CIMExecQueryResponseMessage(          dynamic_cast<CIMExecQueryResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop(),  
         Array<CIMObject>());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request  
     response->setHttpMethod (request->getHttpMethod ());  
   
     // create a handler for this request     // create a handler for this request
     ExecQueryResponseHandler handler(request, response);      ExecQueryResponseHandler handler(
           request, response, _responseChunkCallback);
  
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleExecQueryRequest - Host name: $0  Name space: $1  Class name: $2",              Logger::TRACE,
               "DefaultProviderManager::handleExecQueryRequest - "
               "Host name: $0  Name space: $1  Class name: $2",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             request->className.getString());              request->className.getString()));
  
         // make target object path         // make target object path
         CIMObjectPath objectPath(         CIMObjectPath objectPath(
Line 949 
Line 791 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(),              name.getPhysicalName(), name.getLogicalName());
                                         name.getLogicalName(), String::EMPTY);  
  
         if (dynamic_cast<CIMInstanceQueryProvider*>(ph.GetCIMProvider()) == 0) {         if (dynamic_cast<CIMInstanceQueryProvider*>(ph.GetCIMProvider()) == 0) {
            String errorString = " instance provider is registered supporting execQuery "            String errorString = " instance provider is registered supporting execQuery "
Line 967 
Line 808 
                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         QueryExpression qx(QueryExpressionFactory::routeBuildQueryExpressionRep          QueryExpression qx(request->queryLanguage,request->query);
            (request->queryLanguage,request->query));  
  
         // forward request         // forward request
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
Line 977 
Line 817 
  
         pm_service_op_lock op_lock(&ph.GetProvider());         pm_service_op_lock op_lock(&ph.GetProvider());
  
         STAT_GETSTARTTIME;          STAT_PMS_PROVIDERSTART;
  
         ph.GetProvider().execQuery(         ph.GetProvider().execQuery(
             context,             context,
             objectPath,             objectPath,
             qx,             qx,
             handler);             handler);
   
         STAT_PMS_PROVIDEREND;  
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
   
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");  
     }     }
       HandleCatch(handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
Line 1024 
Line 842 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     CIMAssociatorsResponseMessage * response =     CIMAssociatorsResponseMessage * response =
         new CIMAssociatorsResponseMessage(          dynamic_cast<CIMAssociatorsResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop(),  
         Array<CIMObject>());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key  
     response->setKey(request->getKey());  
   
     // create a handler for this request     // create a handler for this request
     AssociatorsResponseHandler handler(request, response);      AssociatorsResponseHandler handler(
           request, response, _responseChunkCallback);
  
     // process the request     // process the request
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleAssociatorsRequest - Host name: $0  Name space: $1  Class name: $2",              Logger::TRACE,
               "DefaultProviderManager::handleAssociatorsRequest - "
               "Host name: $0  Name space: $1  Class name: $2",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             request->objectName.getClassName().getString());              request->objectName.getClassName().getString()));
  
         // make target object path         // make target object path
         CIMObjectPath objectPath(         CIMObjectPath objectPath(
Line 1065 
Line 879 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 1075 
Line 889 
                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         // ATTN KS STAT_GETSTARTTIME;          STAT_PMS_PROVIDERSTART;
         pm_service_op_lock op_lock(&ph.GetProvider());         pm_service_op_lock op_lock(&ph.GetProvider());
  
         ph.GetProvider().associators(         ph.GetProvider().associators(
Line 1087 
Line 901 
             request->resultRole,             request->resultRole,
             request->includeQualifiers,             request->includeQualifiers,
             request->includeClassOrigin,             request->includeClassOrigin,
             request->propertyList.getPropertyNameArray(),              request->propertyList,
             handler);             handler);
   
         STAT_PMS_PROVIDEREND;  
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
   
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");  
     }     }
       HandleCatch(handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
       STAT_COPYDISPATCHER
   
     return(response);     return(response);
 } }
  
Line 1129 
Line 923 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     CIMAssociatorNamesResponseMessage * response =     CIMAssociatorNamesResponseMessage * response =
         new CIMAssociatorNamesResponseMessage(          dynamic_cast<CIMAssociatorNamesResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop(),  
         Array<CIMObjectPath>());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request  
     response->setHttpMethod(request->getHttpMethod());  
   
     // create a handler for this request     // create a handler for this request
     AssociatorNamesResponseHandler handler(request, response);      AssociatorNamesResponseHandler handler(
           request, response, _responseChunkCallback);
  
     // process the request     // process the request
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleAssociationNamesRequest - Host name: $0  Name space: $1  Class name: $2",              Logger::TRACE,
               "DefaultProviderManager::handleAssociationNamesRequest - "
               "Host name: $0  Name space: $1  Class name: $2",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             request->objectName.getClassName().getString());              request->objectName.getClassName().getString()));
  
         // make target object path         // make target object path
         CIMObjectPath objectPath(         CIMObjectPath objectPath(
Line 1173 
Line 960 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 1183 
Line 970 
                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
                   STAT_PMS_PROVIDERSTART;
         pm_service_op_lock op_lock(&ph.GetProvider());         pm_service_op_lock op_lock(&ph.GetProvider());
  
         ph.GetProvider().associatorNames(         ph.GetProvider().associatorNames(
Line 1193 
Line 981 
             request->role,             request->role,
             request->resultRole,             request->resultRole,
             handler);             handler);
   
         STAT_PMS_PROVIDEREND;  
     }     }
     catch(CIMException & e)      HandleCatch(handler);
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
  
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n      PEG_METHOD_EXIT();
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
  
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n      STAT_COPYDISPATCHER
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
  
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");      return(response);
     }  
   
     PEG_METHOD_EXIT();  
   
     return(response);  
 } }
  
 Message * DefaultProviderManager::handleReferencesRequest(const Message * message) Message * DefaultProviderManager::handleReferencesRequest(const Message * message)
Line 1233 
Line 1001 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     CIMReferencesResponseMessage * response =     CIMReferencesResponseMessage * response =
         new CIMReferencesResponseMessage(          dynamic_cast<CIMReferencesResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop(),  
         Array<CIMObject>());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request  
     response->setHttpMethod (request->getHttpMethod ());  
   
     // create a handler for this request     // create a handler for this request
     ReferencesResponseHandler handler(request, response);      ReferencesResponseHandler handler(
           request, response, _responseChunkCallback);
  
     // process the request     // process the request
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleReferencesRequest - Host name: $0  Name space: $1  Class name: $2",              Logger::TRACE,
               "DefaultProviderManager::handleReferencesRequest - "
               "Host name: $0  Name space: $1  Class name: $2",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             request->objectName.getClassName().getString());              request->objectName.getClassName().getString()));
  
         // make target object path         // make target object path
         CIMObjectPath objectPath(         CIMObjectPath objectPath(
Line 1277 
Line 1038 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 1287 
Line 1048 
                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         STAT_GETSTARTTIME;          STAT_PMS_PROVIDERSTART;
  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Calling provider.references: " +             "Calling provider.references: " +
Line 1302 
Line 1063 
             request->role,             request->role,
             request->includeQualifiers,             request->includeQualifiers,
             request->includeClassOrigin,             request->includeClassOrigin,
             request->propertyList.getPropertyNameArray(),              request->propertyList,
             handler);             handler);
   
         STAT_PMS_PROVIDEREND;  
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
   
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");  
     }     }
       HandleCatch(handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
       STAT_COPYDISPATCHER
   
     return(response);     return(response);
 } }
  
Line 1344 
Line 1085 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     CIMReferenceNamesResponseMessage * response =     CIMReferenceNamesResponseMessage * response =
         new CIMReferenceNamesResponseMessage(          dynamic_cast<CIMReferenceNamesResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),      PEGASUS_ASSERT(response != 0);
         request->queueIds.copyAndPop(),  
         Array<CIMObjectPath>());  
   
     // preserve message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request  
     response->setHttpMethod (request->getHttpMethod ());  
  
     // create a handler for this request     // create a handler for this request
     ReferenceNamesResponseHandler handler(request, response);      ReferenceNamesResponseHandler handler(
           request, response, _responseChunkCallback);
  
     // process the request     // process the request
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleReferenceNamesRequest - Host name: $0  Name space: $1  Class name: $2",              Logger::TRACE,
               "DefaultProviderManager::handleReferenceNamesRequest - "
               "Host name: $0  Name space: $1  Class name: $2",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             request->objectName.getClassName().getString());              request->objectName.getClassName().getString()));
  
         // make target object path         // make target object path
         CIMObjectPath objectPath(         CIMObjectPath objectPath(
Line 1386 
Line 1122 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 1396 
Line 1132 
                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         STAT_GETSTARTTIME;          STAT_PMS_PROVIDERSTART;
  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Calling provider.referenceNames: " +             "Calling provider.referenceNames: " +
Line 1410 
Line 1146 
             request->resultClass,             request->resultClass,
             request->role,             request->role,
             handler);             handler);
   
         STAT_PMS_PROVIDEREND;  
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
   
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");  
     }     }
       HandleCatch(handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
       STAT_COPYDISPATCHER
   
     return(response);     return(response);
 } }
  
Line 1451 
Line 1167 
  
     // create response message     // create response message
     CIMGetPropertyResponseMessage * response =     CIMGetPropertyResponseMessage * response =
         new CIMGetPropertyResponseMessage(          dynamic_cast<CIMGetPropertyResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop(),  
         CIMValue());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key      GetPropertyResponseHandler handler(
     response->setKey(request->getKey());          request, response, _responseChunkCallback);
   
     //  Set HTTP method in response from request  
     response->setHttpMethod(request->getHttpMethod());  
   
     GetPropertyResponseHandler handler(request, response);  
  
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleGetPropertyRequest - Host name: $0  Name space: $1  Class name: $2",              Logger::TRACE,
               "DefaultProviderManager::handleGetPropertyRequest - "
               "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 1487 
Line 1196 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 1499 
Line 1208 
  
         CIMName propertyName = request->propertyName;         CIMName propertyName = request->propertyName;
  
         STAT_GETSTARTTIME;          STAT_PMS_PROVIDERSTART;
  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Calling provider.getProperty: " +             "Calling provider.getProperty: " +
Line 1513 
Line 1222 
             objectPath,             objectPath,
             propertyName,             propertyName,
             handler);             handler);
   
         STAT_PMS_PROVIDEREND;  
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
   
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");  
     }     }
       HandleCatch(handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
       STAT_COPYDISPATCHER
   
     return(response);     return(response);
 } }
  
Line 1553 
Line 1242 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     // create response message     // create response message
     //l10n  
     CIMSetPropertyResponseMessage * response =     CIMSetPropertyResponseMessage * response =
         new CIMSetPropertyResponseMessage(          dynamic_cast<CIMSetPropertyResponseMessage*>(
         request->messageId,              request->buildResponse());
         PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, MessageLoaderParms(  
         "ProviderManager.DefaultProviderManager.NOT_IMPLEMENTED",  
         "not implemented")),  
         request->queueIds.copyAndPop());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key      SetPropertyResponseHandler handler(
     response->setKey(request->getKey());          request, response, _responseChunkCallback);
   
     //  Set HTTP method in response from request  
     response->setHttpMethod(request->getHttpMethod());  
   
     SetPropertyResponseHandler handler(request, response);  
  
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleSetPropertyRequest - Host name: $0  Name space: $1  Class name: $2",              Logger::TRACE,
               "DefaultProviderManager::handleSetPropertyRequest - "
               "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 1592 
Line 1272 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 1605 
Line 1285 
         CIMName propertyName = request->propertyName;         CIMName propertyName = request->propertyName;
         CIMValue propertyValue = request->newValue;         CIMValue propertyValue = request->newValue;
  
         STAT_GETSTARTTIME;          STAT_PMS_PROVIDERSTART;
  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Calling provider.setProperty: " +             "Calling provider.setProperty: " +
Line 1620 
Line 1300 
             propertyName,             propertyName,
             propertyValue,             propertyValue,
             handler);             handler);
   
         STAT_PMS_PROVIDEREND;  
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
   
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");  
     }     }
       HandleCatch(handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
       STAT_COPYDISPATCHER
   
     return(response);     return(response);
 } }
  
Line 1661 
Line 1321 
  
     // create response message     // create response message
     CIMInvokeMethodResponseMessage * response =     CIMInvokeMethodResponseMessage * response =
         new CIMInvokeMethodResponseMessage(          dynamic_cast<CIMInvokeMethodResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop(),  
         CIMValue(),  
         Array<CIMParamValue>(),  
         request->methodName);  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // propagate message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request  
     response->setHttpMethod (request->getHttpMethod ());  
   
     // create a handler for this request     // create a handler for this request
     InvokeMethodResponseHandler handler(request, response);      InvokeMethodResponseHandler handler(
           request, response, _responseChunkCallback);
  
     try     try
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleInvokeMethodRequest - Host name: $0  Name space: $1  Class name: $2",              Logger::TRACE,
               "DefaultProviderManager::handleInvokeMethodRequest - "
               "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 1700 
Line 1351 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 1716 
Line 1367 
         instanceReference.setNameSpace(request->nameSpace);         instanceReference.setNameSpace(request->nameSpace);
  
         // forward request         // forward request
         STAT_GETSTARTTIME;          STAT_PMS_PROVIDERSTART;
  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Calling provider.invokeMethod: " +             "Calling provider.invokeMethod: " +
Line 1730 
Line 1381 
             request->methodName,             request->methodName,
             request->inParameters,             request->inParameters,
             handler);             handler);
   
         STAT_PMS_PROVIDEREND;  
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
   
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");  
     }     }
       HandleCatch(handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
Line 1770 
Line 1399 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     CIMCreateSubscriptionResponseMessage * response =     CIMCreateSubscriptionResponseMessage * response =
         new CIMCreateSubscriptionResponseMessage(          dynamic_cast<CIMCreateSubscriptionResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key      OperationResponseHandler handler(
     response->setKey(request->getKey());          request, response, _responseChunkCallback);
   
     //  Set HTTP method in response from request  
     response->setHttpMethod (request->getHttpMethod ());  
   
     OperationResponseHandler handler(request, response);  
  
     try     try
     {     {
Line 1799 
Line 1420 
             }             }
         }         }
  
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleCreateSubscriptionRequest - Host name: $0  Name space: $1  Class name(s): $2",              Logger::TRACE,
               "DefaultProviderManager::handleCreateSubscriptionRequest - "
               "Host name: $0  Name space: $1  Class name(s): $2",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             temp);              temp));
  
                 CIMInstance req_provider, req_providerModule;                 CIMInstance req_provider, req_providerModule;
                 ProviderIdContainer pidc = (ProviderIdContainer)request->operationContext.get(ProviderIdContainer::NAME);                 ProviderIdContainer pidc = (ProviderIdContainer)request->operationContext.get(ProviderIdContainer::NAME);
Line 1818 
Line 1441 
                                   req_providerModule.getProperty(req_providerModule.findProperty                                   req_providerModule.getProperty(req_providerModule.findProperty
                                   ("InterfaceType")).getValue().toString(),                                   ("InterfaceType")).getValue().toString(),
                                    0);                                    0);
   
                 // get cached or load new provider module                 // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
   
           //
           //  Save the provider instance from the request
           //
           ph.GetProvider ().setProviderInstance (req_provider);
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 1829 
Line 1458 
                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
             context.insert(request->operationContext.get(SubscriptionInstanceContainer::NAME));             context.insert(request->operationContext.get(SubscriptionInstanceContainer::NAME));
             context.insert(request->operationContext.get(SubscriptionLanguageListContainer::NAME));  
             context.insert(request->operationContext.get(SubscriptionFilterConditionContainer::NAME));             context.insert(request->operationContext.get(SubscriptionFilterConditionContainer::NAME));
                    context.insert(request->operationContext.get(SubscriptionFilterQueryContainer::NAME));
  
         CIMObjectPath subscriptionName = request->subscriptionInstance.getPath();         CIMObjectPath subscriptionName = request->subscriptionInstance.getPath();
  
Line 1862 
Line 1491 
             classNames,             classNames,
             propertyList,             propertyList,
             repeatNotificationPolicy);             repeatNotificationPolicy);
   
           //
           //  Increment count of current subscriptions for this provider
           //
           if (ph.GetProvider ().testIfZeroAndIncrementSubscriptions ())
           {
               //
               //  If there were no current subscriptions before the increment,
               //  the first subscription has been created
               //  Call the provider's enableIndications method
               //
               if (_subscriptionInitComplete)
               {
                   _callEnableIndications (req_provider,
                       _indicationCallback, ph);
               }
           }
     }     }
     catch(CIMException & e)     catch(CIMException & e)
     {     {
Line 1900 
Line 1546 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     CIMModifySubscriptionResponseMessage * response =     CIMModifySubscriptionResponseMessage * response =
         new CIMModifySubscriptionResponseMessage(          dynamic_cast<CIMModifySubscriptionResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key      OperationResponseHandler handler(
     response->setKey(request->getKey());          request, response, _responseChunkCallback);
   
     //  Set HTTP method in response from request  
     response->setHttpMethod (request->getHttpMethod ());  
   
     OperationResponseHandler handler(request, response);  
  
     try     try
     {     {
Line 1929 
Line 1567 
             }             }
         }         }
  
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleCreateSubscriptionRequest - Host name: $0  Name space: $1  Class name(s): $2",              Logger::TRACE,
               "DefaultProviderManager::handleCreateSubscriptionRequest - "
               "Host name: $0  Name space: $1  Class name(s): $2",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             temp);              temp));
  
                 CIMInstance req_provider, req_providerModule;                 CIMInstance req_provider, req_providerModule;
                 ProviderIdContainer pidc = (ProviderIdContainer)request->operationContext.get(ProviderIdContainer::NAME);                 ProviderIdContainer pidc = (ProviderIdContainer)request->operationContext.get(ProviderIdContainer::NAME);
Line 1950 
Line 1590 
                                    0);                                    0);
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 1959 
Line 1599 
                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
             context.insert(request->operationContext.get(SubscriptionInstanceContainer::NAME));             context.insert(request->operationContext.get(SubscriptionInstanceContainer::NAME));
             context.insert(request->operationContext.get(SubscriptionLanguageListContainer::NAME));  
             context.insert(request->operationContext.get(SubscriptionFilterConditionContainer::NAME));             context.insert(request->operationContext.get(SubscriptionFilterConditionContainer::NAME));
                    context.insert(request->operationContext.get(SubscriptionFilterQueryContainer::NAME));
  
         CIMObjectPath subscriptionName = request->subscriptionInstance.getPath();         CIMObjectPath subscriptionName = request->subscriptionInstance.getPath();
  
Line 2030 
Line 1670 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     CIMDeleteSubscriptionResponseMessage * response =     CIMDeleteSubscriptionResponseMessage * response =
         new CIMDeleteSubscriptionResponseMessage(          dynamic_cast<CIMDeleteSubscriptionResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key      OperationResponseHandler handler(
     response->setKey(request->getKey());          request, response, _responseChunkCallback);
   
     //  Set HTTP method in response from request  
     response->setHttpMethod(request->getHttpMethod());  
   
     OperationResponseHandler handler(request, response);  
  
     try     try
     {     {
Line 2059 
Line 1691 
             }             }
         }         }
  
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,          PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
             "DefaultProviderManager::handleDeleteSubscriptionRequest - Host name: $0  Name space: $1  Class name(s): $2",              Logger::TRACE,
               "DefaultProviderManager::handleDeleteSubscriptionRequest - "
               "Host name: $0  Name space: $1  Class name(s): $2",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             temp);              temp));
  
                 CIMInstance req_provider, req_providerModule;                 CIMInstance req_provider, req_providerModule;
                 ProviderIdContainer pidc = (ProviderIdContainer)request->operationContext.get(ProviderIdContainer::NAME);                 ProviderIdContainer pidc = (ProviderIdContainer)request->operationContext.get(ProviderIdContainer::NAME);
Line 2081 
Line 1715 
                                    0);                                    0);
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 2091 
Line 1725 
                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));                 context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));             context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
             context.insert(request->operationContext.get(SubscriptionInstanceContainer::NAME));             context.insert(request->operationContext.get(SubscriptionInstanceContainer::NAME));
             context.insert(request->operationContext.get(SubscriptionLanguageListContainer::NAME));  
  
         CIMObjectPath subscriptionName = request->subscriptionInstance.getPath();         CIMObjectPath subscriptionName = request->subscriptionInstance.getPath();
  
Line 2117 
Line 1750 
             context,             context,
             subscriptionName,             subscriptionName,
             classNames);             classNames);
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
   
         handler.setStatus(CIM_ERR_FAILED, "Unknown Error");  
     }  
   
     PEG_METHOD_EXIT();  
   
     return(response);  
 }  
   
 Message * DefaultProviderManager::handleEnableIndicationsRequest(const Message * message)  
 {  
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager:: handleEnableIndicationsRequest");  
   
     CIMEnableIndicationsRequestMessage * request =  
         dynamic_cast<CIMEnableIndicationsRequestMessage *>(const_cast<Message *>(message));  
   
     PEGASUS_ASSERT(request != 0);  
   
     CIMEnableIndicationsResponseMessage * response =  
         new CIMEnableIndicationsResponseMessage(  
         request->messageId,  
         CIMException(),  
         request->queueIds.copyAndPop());  
   
     PEGASUS_ASSERT(response != 0);  
   
     // preserve message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request  
     response->setHttpMethod(request->getHttpMethod());  
   
     response->dest = request->queueIds.top();  
   
     EnableIndicationsResponseHandler *handler =  
         new EnableIndicationsResponseHandler(  
             request, response, request->provider, _indicationCallback);  
   
         CIMInstance req_provider, req_providerModule;  
         ProviderIdContainer pidc = (ProviderIdContainer)request->operationContext.get(ProviderIdContainer::NAME);  
   
         req_provider = pidc.getProvider();  
         req_providerModule = pidc.getModule();  
   
     try  
     {  
           String physicalName=_resolvePhysicalName( req_providerModule.getProperty(  
                                                     req_providerModule.findProperty("Location")).getValue().toString());  
   
           ProviderName name(req_provider.getProperty(req_provider.findProperty("Name")).getValue ().toString (),  
                                   physicalName,  
                                   req_providerModule.getProperty(req_providerModule.findProperty  
                                   ("InterfaceType")).getValue().toString(),  
                                    0);  
   
         // get cached or load new provider module  
         OpProviderHolder ph =  
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);  
  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,          //
             "Calling provider.enableIndications: " +          //  Decrement count of current subscriptions for this provider
             ph.GetProvider().getName());          //
           if (ph.GetProvider ().decrementSubscriptionsAndTestIfZero ())
         pm_service_op_lock op_lock(&ph.GetProvider());  
         ph.GetProvider().protect();  
   
         ph.GetProvider().enableIndications(*handler);  
   
   
         // if no exception, store the handler so it is persistent for as  
         // long as the provider has indications enabled.  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Storing indication handler for " + ph.GetProvider().getName());  
   
         _insertEntry(ph.GetProvider(), handler);  
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         response->cimException = CIMException(e);  
     }  
     catch(Exception & e)  
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,              //
             "Exception: " + e.getMessage());              //  If there are no current subscriptions after the decrement,
         response->cimException = CIMException(CIM_ERR_FAILED, MessageLoaderParms(              //  the last subscription has been deleted
             "ProviderManager.DefaultProviderManager.INTERNAL_ERROR",              //  Call the provider's disableIndications method
             "Internal Error"));              //
     }              if (_subscriptionInitComplete)
     catch(...)  
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Exception: Unknown");  
         response->cimException = CIMException(CIM_ERR_FAILED, MessageLoaderParms(  
             "ProviderManager.DefaultProviderManager.UNKNOWN_ERROR",  
             "Unknown Error"));  
     }  
   
     PEG_METHOD_EXIT();  
   
     return(response);  
 }  
   
 Message * DefaultProviderManager::handleDisableIndicationsRequest(const Message * message)  
 {  
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleDisableIndicationsRequest");  
   
     CIMDisableIndicationsRequestMessage * request =  
         dynamic_cast<CIMDisableIndicationsRequestMessage *>(const_cast<Message *>(message));  
   
     PEGASUS_ASSERT(request != 0);  
   
     CIMDisableIndicationsResponseMessage * response =  
         new CIMDisableIndicationsResponseMessage(  
         request->messageId,  
         CIMException(),  
         request->queueIds.copyAndPop());  
   
     // preserve message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request  
     response->setHttpMethod (request->getHttpMethod ());  
   
     OperationResponseHandler handler(request, response);  
   
         CIMInstance req_provider, req_providerModule;  
         ProviderIdContainer pidc = (ProviderIdContainer)request->operationContext.get(ProviderIdContainer::NAME);  
   
         req_provider = pidc.getProvider();  
         req_providerModule = pidc.getModule();  
   
     try  
     {  
        String physicalName=_resolvePhysicalName(  
               req_providerModule.getProperty(  
                 req_providerModule.findProperty("Location")).getValue().toString());  
   
        ProviderName name(  
                req_provider.getProperty(req_provider.findProperty  
                    ("Name")).getValue ().toString (),  
                physicalName,  
                 req_providerModule.getProperty(req_providerModule.findProperty  
                     ("InterfaceType")).getValue().toString(),  
             0);  
         // get cached or load new provider module  
         OpProviderHolder ph =  
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);  
   
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Calling provider.disableIndications: " +             "Calling provider.disableIndications: " +
             ph.GetProvider().getName());             ph.GetProvider().getName());
  
Line 2295 
Line 1771 
  
         ph.GetProvider().unprotect();         ph.GetProvider().unprotect();
  
                   //
                   //
                   //
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Removing and Destroying indication handler for " +             "Removing and Destroying indication handler for " +
             ph.GetProvider().getName());             ph.GetProvider().getName());
  
         delete _removeEntry(_generateKey(ph.GetProvider()));         delete _removeEntry(_generateKey(ph.GetProvider()));
     }     }
           }
       }
     catch(CIMException & e)     catch(CIMException & e)
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Exception: " + e.getMessage());             "Exception: " + e.getMessage());
  
         response->cimException = CIMException(e);          handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n
     }     }
     catch(Exception & e)     catch(Exception & e)
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Exception: " + e.getMessage());             "Exception: " + e.getMessage());
             response->cimException = CIMException(CIM_ERR_FAILED, MessageLoaderParms(  
             "ProviderManager.DefaultProviderManager.INTERNAL_ERROR",          handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n
             "Internal Error"));  
     }     }
     catch(...)     catch(...)
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Exception: Unknown");             "Exception: Unknown");
             response->cimException = CIMException(CIM_ERR_FAILED, MessageLoaderParms(  
             "ProviderManager.DefaultProviderManager.UNKNOWN_ERROR",          handler.setStatus(CIM_ERR_FAILED, "Unknown Error");
             "Unknown Error"));  
     }     }
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
Line 2341 
Line 1819 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     CIMExportIndicationResponseMessage * response =     CIMExportIndicationResponseMessage * response =
         new CIMExportIndicationResponseMessage(          dynamic_cast<CIMExportIndicationResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key      OperationResponseHandler handler(
     response->setKey(request->getKey());          request, response, _responseChunkCallback);
   
     //  Set HTTP method in response from request  
     response->setHttpMethod (request->getHttpMethod ());  
   
     OperationResponseHandler handler(request, response);  
  
     try     try
     {     {
Line 2363 
Line 1833 
             request->operationContext.get(ProviderIdContainer::NAME));             request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =          OpProviderHolder ph = providerManager.getProvider(
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);              name.getPhysicalName(), name.getLogicalName());
   
                   STAT_PMS_PROVIDERSTART
  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                        "Calling provider.: " +                        "Calling provider.: " +
Line 2372 
Line 1844 
  
         OperationContext context;         OperationContext context;
  
           context.insert(request->operationContext.get(IdentityContainer::NAME));
   
 //L10N_TODO //L10N_TODO
 //l10n //l10n
 // ATTN-CEC 06/04/03 NOTE: I can't find where the consume msg is sent.  This // ATTN-CEC 06/04/03 NOTE: I can't find where the consume msg is sent.  This
Line 2388 
Line 1862 
       ph.GetProvider().consumeIndication(context,       ph.GetProvider().consumeIndication(context,
                                 request->destinationPath,                                 request->destinationPath,
                                 indication_copy);                                 indication_copy);
   
     }  
   
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
   
         handler.setStatus(CIM_ERR_FAILED, "Unknown Error");  
     }     }
       HandleCatch(handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
Line 2468 
Line 1920 
             String pName(_pInstances[i].getProperty(             String pName(_pInstances[i].getProperty(
                _pInstances[i].findProperty("Name")).getValue().toString());                _pInstances[i].findProperty("Name")).getValue().toString());
  
             Sint16 ret_value = providerManager.disableProvider(physicalName,pName);              Sint16 ret_value = providerManager.disableProvider(pName);
  
             if (ret_value == 0)             if (ret_value == 0)
             {             {
                 // disable failed since there are pending requests,                 // disable failed since there are pending requests,
                 // stop trying to disable other providers in this module.                 // stop trying to disable other providers in this module.
                 operationalStatus.append(_MODULE_OK);                  operationalStatus.append(CIM_MSE_OPSTATUS_VALUE_OK);
                 break;                 break;
             }             }
             else if (ret_value == 1)  // Success             else if (ret_value == 1)  // Success
             {             {
                 // if It is an indication provider  
                 // remove the entry from the table since the  
                 // provider has been disabled  
                 if (_indicationProviders[i])                 if (_indicationProviders[i])
                 {                 {
                       //
                       //  Reset the indication provider's count of current
                       //  subscriptions since it has been disabled
                       //
                       if (physicalName.size () > 0)
                       {
                           OpProviderHolder ph = providerManager.getProvider(
                               physicalName, pName);
   
                           ph.GetProvider ().resetSubscriptions ();
                       }
   
                       //
                       //  If it is an indication provider
                       //  remove the entry from the table since the
                       //  provider has been disabled
                       //
                     delete _removeEntry(_generateKey(pName,physicalName));                     delete _removeEntry(_generateKey(pName,physicalName));
                 }                 }
             }             }
Line 2529 
Line 1995 
         // Status is set to OK if a provider was busy         // Status is set to OK if a provider was busy
         if (operationalStatus.size() == 0)         if (operationalStatus.size() == 0)
         {         {
             operationalStatus.append(_MODULE_STOPPED);              operationalStatus.append(CIM_MSE_OPSTATUS_VALUE_STOPPED);
         }         }
     }     }
     else     else
     {     {
         // If exception occurs, module is not stopped         // If exception occurs, module is not stopped
         operationalStatus.append(_MODULE_OK);          operationalStatus.append(CIM_MSE_OPSTATUS_VALUE_OK);
     }     }
  
     CIMDisableModuleResponseMessage * response =     CIMDisableModuleResponseMessage * response =
         new CIMDisableModuleResponseMessage(          dynamic_cast<CIMDisableModuleResponseMessage*>(
             request->messageId,              request->buildResponse());
             CIMException(),      PEGASUS_ASSERT(response != 0);
             request->queueIds.copyAndPop(),  
             operationalStatus);  
   
     // preserve message key  
     response->setKey(request->getKey());  
  
     //  Set HTTP method in response from request      response->operationalStatus = operationalStatus;
     response->setHttpMethod (request->getHttpMethod ());  
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
Line 2566 
Line 2026 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     Array<Uint16> operationalStatus;     Array<Uint16> operationalStatus;
     operationalStatus.append(_MODULE_OK);      operationalStatus.append(CIM_MSE_OPSTATUS_VALUE_OK);
  
     CIMEnableModuleResponseMessage * response =     CIMEnableModuleResponseMessage * response =
         new CIMEnableModuleResponseMessage(          dynamic_cast<CIMEnableModuleResponseMessage*>(
             request->messageId,              request->buildResponse());
             CIMException(),      PEGASUS_ASSERT(response != 0);
             request->queueIds.copyAndPop(),  
             operationalStatus);  
   
     // preserve message key  
     response->setKey(request->getKey());  
  
     //  Set HTTP method in response from request      response->operationalStatus = operationalStatus;
     response->setHttpMethod (request->getHttpMethod ());  
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return(response);     return(response);
Line 2595 
Line 2049 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     CIMStopAllProvidersResponseMessage * response =     CIMStopAllProvidersResponseMessage * response =
         new CIMStopAllProvidersResponseMessage(          dynamic_cast<CIMStopAllProvidersResponseMessage*>(
         request->messageId,              request->buildResponse());
         CIMException(),  
         request->queueIds.copyAndPop());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key  
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request  
     response->setHttpMethod (request->getHttpMethod ());  
   
     // tell the provider manager to shutdown all the providers     // tell the provider manager to shutdown all the providers
     providerManager.shutdownAllProviders();     providerManager.shutdownAllProviders();
  
       try
       {
           // Delete the response handlers that were not explicitly disabled.
           AutoMutex lock(_responseTableMutex);
   
           for (IndicationResponseTable::Iterator i = _responseTable.start();
                i != 0; i++)
           {
               EnableIndicationsResponseHandler *handler = i.value();
               delete handler;
           }
   
           _responseTable.clear();
       }
       catch (...) { }
   
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     return(response);     return(response);
 } }
  
   Message *
   DefaultProviderManager::handleSubscriptionInitCompleteRequest
       (const Message * message)
   {
       PEG_METHOD_ENTER (TRC_PROVIDERMANAGER,
        "DefaultProviderManager::handleSubscriptionInitCompleteRequest");
   
       CIMSubscriptionInitCompleteRequestMessage * request =
           dynamic_cast <CIMSubscriptionInitCompleteRequestMessage *>
               (const_cast <Message *> (message));
   
       PEGASUS_ASSERT (request != 0);
   
       CIMSubscriptionInitCompleteResponseMessage * response =
           dynamic_cast <CIMSubscriptionInitCompleteResponseMessage *>
               (request->buildResponse ());
   
       PEGASUS_ASSERT (response != 0);
   
       //
       //  Set indicator
       //
       _subscriptionInitComplete = true;
   
       //
       //  For each provider that has at least one subscription, call
       //  provider's enableIndications method
       //
       Array <Provider *> enableProviders;
       enableProviders = providerManager.getIndicationProvidersToEnable ();
   
       Uint32 numProviders = enableProviders.size ();
       for (Uint32 i = 0; i < numProviders; i++)
       {
           try
           {
               CIMInstance provider;
               provider = enableProviders [i]->getProviderInstance ();
   
               //
               //  Get cached or load new provider module
               //
               OpProviderHolder ph = providerManager.getProvider(
                   enableProviders[i]->getModule()->getFileName(),
                   enableProviders[i]->getName());
   
               _callEnableIndications (provider, _indicationCallback, ph);
           }
           catch (CIMException & e)
           {
               PEG_TRACE_STRING (TRC_PROVIDERMANAGER, Tracer::LEVEL2,
                   "CIMException: " + e.getMessage ());
           }
           catch (Exception & e)
           {
               PEG_TRACE_STRING (TRC_PROVIDERMANAGER, Tracer::LEVEL2,
                   "Exception: " + e.getMessage ());
           }
           catch(...)
           {
               PEG_TRACE_STRING (TRC_PROVIDERMANAGER, Tracer::LEVEL2,
                   "Unknown error in handleSubscriptionInitCompleteRequest");
           }
       }
   
       PEG_METHOD_EXIT ();
       return (response);
   }
   
 void DefaultProviderManager::_insertEntry ( void DefaultProviderManager::_insertEntry (
     const Provider & provider,     const Provider & provider,
     const EnableIndicationsResponseHandler *handler)      EnableIndicationsResponseHandler* handler)
 { {
     PEG_METHOD_ENTER (TRC_INDICATION_SERVICE,      PEG_METHOD_ENTER (TRC_PROVIDERMANAGER,
         "DefaultProviderManager::_insertEntry");         "DefaultProviderManager::_insertEntry");
  
     String tableKey = _generateKey      String tableKey = _generateKey(provider);
         (provider);  
  
     _responseTable.insert (tableKey, const_cast<EnableIndicationsResponseHandler *>(handler));      AutoMutex lock(_responseTableMutex);
       _responseTable.insert(tableKey, handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
 } }
Line 2634 
Line 2164 
 EnableIndicationsResponseHandler * DefaultProviderManager::_removeEntry( EnableIndicationsResponseHandler * DefaultProviderManager::_removeEntry(
     const String & key)     const String & key)
 { {
     PEG_METHOD_ENTER (TRC_INDICATION_SERVICE,      PEG_METHOD_ENTER (TRC_PROVIDERMANAGER,
         "DefaultProviderManager::_removeEntry");         "DefaultProviderManager::_removeEntry");
     EnableIndicationsResponseHandler *ret = 0;     EnableIndicationsResponseHandler *ret = 0;
  
       AutoMutex lock(_responseTableMutex);
     _responseTable.lookup(key, ret);     _responseTable.lookup(key, ret);
     _responseTable.remove(key);         // why is this needed ? - we get killed when removed...      _responseTable.remove(key);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
Line 2651 
Line 2182 
 { {
     String tableKey;     String tableKey;
  
     PEG_METHOD_ENTER (TRC_INDICATION_SERVICE,      PEG_METHOD_ENTER (TRC_PROVIDERMANAGER,
         "DefaultProviderManager::_generateKey");         "DefaultProviderManager::_generateKey");
  
     //     //
Line 2673 
Line 2204 
 { {
     String tableKey;     String tableKey;
  
     PEG_METHOD_ENTER (TRC_INDICATION_SERVICE,      PEG_METHOD_ENTER (TRC_PROVIDERMANAGER,
                       "DefaultProviderManagerService::_generateKey");                       "DefaultProviderManagerService::_generateKey");
  
     //     //
Line 2708 
Line 2239 
         providerId.getModule().findProperty("InterfaceType")).getValue();         providerId.getModule().findProperty("InterfaceType")).getValue();
     genericValue.get(interfaceName);     genericValue.get(interfaceName);
  
     // Check if the provider module is blocked      return ProviderName(providerName, fileName, interfaceName, 0);
     Array<Uint16> operationalStatus;  }
     Uint32 pos = providerId.getModule().findProperty(  
         CIMName("OperationalStatus"));  
     PEGASUS_ASSERT(pos != PEG_NOT_FOUND);  
     providerId.getModule().getProperty(pos).getValue().get(operationalStatus);  
  
     for(Uint32 i = 0; i < operationalStatus.size(); i++)  Boolean DefaultProviderManager::hasActiveProviders()
     {     {
         if(operationalStatus[i] == _MODULE_STOPPED ||      return providerManager.hasActiveProviders();
            operationalStatus[i] == _MODULE_STOPPING)  }
   
   void DefaultProviderManager::unloadIdleProviders()
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED,      providerManager.unloadIdleProviders();
                 MessageLoaderParms(  
                     "ProviderManager.ProviderManagerService.PROVIDER_BLOCKED",  
                     "provider blocked."));  
         }         }
   
   void DefaultProviderManager::_callEnableIndications
       (CIMInstance & req_provider,
        PEGASUS_INDICATION_CALLBACK_T _indicationCallback,
        OpProviderHolder & ph)
   {
       PEG_METHOD_ENTER (TRC_PROVIDERMANAGER,
           "DefaultProviderManager::_callEnableIndications");
   
       try
       {
           CIMRequestMessage * request = 0;
           CIMResponseMessage * response = 0;
           EnableIndicationsResponseHandler * enableHandler =
               new EnableIndicationsResponseHandler(
                   request,
                   response,
                   req_provider,
                   _indicationCallback,
                   _responseChunkCallback);
   
           PEG_TRACE_STRING (TRC_PROVIDERMANAGER, Tracer::LEVEL4,
               "Calling provider.enableIndications: " +
               ph.GetProvider ().getName ());
   
           pm_service_op_lock op_lock (& ph.GetProvider ());
           ph.GetProvider ().protect ();
           ph.GetProvider ().enableIndications (* enableHandler);
   
           //
           //  Store the handler so it is persistent for as
           //  long as the provider has indications enabled
           //
           PEG_TRACE_STRING (TRC_PROVIDERMANAGER, Tracer::LEVEL4,
               "Storing indication handler for " +
               ph.GetProvider ().getName ());
   
           _insertEntry (ph.GetProvider (), enableHandler);
     }     }
       catch (CIMException & e)
       {
           PEG_TRACE_STRING (TRC_PROVIDERMANAGER, Tracer::LEVEL2,
               "CIMException: " + e.getMessage ());
  
     return ProviderName(providerName, fileName, interfaceName, 0);          Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::WARNING,
               "ProviderManager.Default.DefaultProviderManager."
                   "ENABLE_INDICATIONS_FAILED",
               "Failed to enable indications for provider $0: $1.",
               ph.GetProvider ().getName (), e.getMessage ());
 } }
       catch (Exception & e)
       {
           PEG_TRACE_STRING (TRC_PROVIDERMANAGER, Tracer::LEVEL2,
               "Exception: " + e.getMessage ());
  
 Boolean DefaultProviderManager::hasActiveProviders()          Logger::put_l (Logger::ERROR_LOG, System::CIMSERVER, Logger::WARNING,
               "ProviderManager.Default.DefaultProviderManager."
                   "ENABLE_INDICATIONS_FAILED",
               "Failed to enable indications for provider $0: $1.",
               ph.GetProvider ().getName (), e.getMessage ());
       }
       catch(...)
 { {
     return providerManager.hasActiveProviders();          PEG_TRACE_STRING (TRC_PROVIDERMANAGER, Tracer::LEVEL2,
               "Unexpected error in _callEnableIndications");
   
           Logger::put_l (Logger::ERROR_LOG, System::CIMSERVER, Logger::WARNING,
               "ProviderManager.Default.DefaultProviderManager."
                   "ENABLE_INDICATIONS_FAILED_UNKNOWN",
               "Failed to enable indications for provider $0.",
               ph.GetProvider ().getName ());
 } }
  
 void DefaultProviderManager::unloadIdleProviders()      PEG_METHOD_EXIT ();
   }
   
   ProviderManager* DefaultProviderManager::createDefaultProviderManagerCallback()
 { {
     providerManager.unloadIdleProviders();      return new DefaultProviderManager();
 } }
  
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END


Legend:
Removed from v.1.34  
changed lines
  Added in v.1.63

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2