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

Diff for /pegasus/src/Pegasus/ProviderManager2/Default/ProviderMessageHandler.cpp between version 1.6.4.2 and 1.29

version 1.6.4.2, 2007/04/04 11:04:50 version 1.29, 2014/08/27 23:10:11
Line 1 
Line 1 
 //%2006////////////////////////////////////////////////////////////////////////  //%LICENSE////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development  // Licensed to The Open Group (TOG) under one or more contributor license
 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.  // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;  // this work for additional information regarding copyright ownership.
 // IBM Corp.; EMC Corporation, The Open Group.  // Each contributor licenses this file to you under the OpenPegasus Open
 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;  // Source License; you may not use this file except in compliance with the
 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.  // License.
 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;  //
 // EMC Corporation; VERITAS Software Corporation; The Open Group.  // Permission is hereby granted, free of charge, to any person obtaining a
 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;  // copy of this software and associated documentation files (the "Software"),
 // EMC Corporation; Symantec Corporation; The Open Group.  // to deal in the Software without restriction, including without limitation
 //  // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 // Permission is hereby granted, free of charge, to any person obtaining a copy  // and/or sell copies of the Software, and to permit persons to whom the
 // of this software and associated documentation files (the "Software"), to  // Software is furnished to do so, subject to the following conditions:
 // deal in the Software without restriction, including without limitation the  //
 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or  // The above copyright notice and this permission notice shall be included
 // sell copies of the Software, and to permit persons to whom the Software is  // in all copies or substantial portions of the Software.
 // furnished to do so, subject to the following conditions:  //
 //  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN  // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED  // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT  // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR  // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT  // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN  // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION  
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  
 // //
 //==============================================================================  //////////////////////////////////////////////////////////////////////////
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
 #include "ProviderMessageHandler.h" #include "ProviderMessageHandler.h"
  
   #include <exception>
   
 #include <Pegasus/Common/OperationContextInternal.h> #include <Pegasus/Common/OperationContextInternal.h>
 #include <Pegasus/Common/Tracer.h> #include <Pegasus/Common/Tracer.h>
 #include <Pegasus/Common/StatisticalData.h> #include <Pegasus/Common/StatisticalData.h>
Line 53 
Line 53 
 #include <Pegasus/ProviderManager2/OperationResponseHandler.h> #include <Pegasus/ProviderManager2/OperationResponseHandler.h>
 #include <Pegasus/ProviderManager2/AutoPThreadSecurity.h> #include <Pegasus/ProviderManager2/AutoPThreadSecurity.h>
  
 #define HANDLE_PROVIDER_EXCEPTION(providerCall, handler)               \  #define HANDLE_PROVIDER_CALL(traceString, providerCall, handler)       \
       do                                                                 \
       {                                                                  \
           PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,                \
               "Calling provider." #traceString ": %s",                   \
               (const char*)_fullyQualifiedProviderName.getCString()));   \
     try                                                                \     try                                                                \
     {                                                                  \     {                                                                  \
         providerCall;                                                  \         providerCall;                                                  \
     }                                                                  \     }                                                                  \
     catch (CIMException& e)                                            \     catch (CIMException& e)                                            \
     {                                                                  \     {                                                                  \
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,          \              PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1,            \
             "Provider Exception: " + e.getMessage());                  \                  "Provider CIMException: %s",                           \
                   (const char*)e.getMessage().getCString()));            \
         handler.setCIMException(e);                                    \         handler.setCIMException(e);                                    \
     }                                                                  \     }                                                                  \
     catch (Exception& e)                                               \     catch (Exception& e)                                               \
     {                                                                  \     {                                                                  \
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,          \              PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1,            \
             "Provider Exception: " + e.getMessage());                  \                  "Provider Exception: %s",                              \
                   (const char*)e.getMessage().getCString()));            \
         handler.setStatus(                                             \         handler.setStatus(                                             \
             CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage());  \                  CIM_ERR_FAILED,                                        \
                   e.getContentLanguages(),                               \
                   e.getMessage());                                       \
           }                                                              \
           catch (const PEGASUS_STD(exception)& e)                        \
           {                                                              \
               PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1,            \
                   "Provider exception: %s", e.what()));                  \
               handler.setStatus(CIM_ERR_FAILED, e.what());               \
     }                                                                  \     }                                                                  \
     catch (...)                                                        \     catch (...)                                                        \
     {                                                                  \     {                                                                  \
         PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         \              PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL1,     \
             "Provider Exception: Unknown");                            \                  "Provider unknown exception");                         \
         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");           \         handler.setStatus(CIM_ERR_FAILED, "Unknown error.");           \
     }          }                                                              \
           PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,                \
               "Returned from provider." #traceString ": %s",             \
               (const char*)_fullyQualifiedProviderName.getCString()));   \
       } while (0)
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
Line 100 
Line 118 
 // Default Provider Manager // Default Provider Manager
 // //
 ProviderMessageHandler::ProviderMessageHandler( ProviderMessageHandler::ProviderMessageHandler(
       const String& moduleName,
     const String& name,     const String& name,
     CIMProvider* provider,     CIMProvider* provider,
     PEGASUS_INDICATION_CALLBACK_T indicationCallback,     PEGASUS_INDICATION_CALLBACK_T indicationCallback,
     PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback,     PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback,
     Boolean subscriptionInitComplete)     Boolean subscriptionInitComplete)
     : _name(name),     : _name(name),
         _fullyQualifiedProviderName(moduleName + ":" + name),
       _provider(provider),       _provider(provider),
       _indicationCallback(indicationCallback),       _indicationCallback(indicationCallback),
       _responseChunkCallback(responseChunkCallback),       _responseChunkCallback(responseChunkCallback),
Line 135 
Line 155 
  
 void ProviderMessageHandler::initialize(CIMOMHandle& cimom) void ProviderMessageHandler::initialize(CIMOMHandle& cimom)
 { {
       PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
           "Calling provider.initialize: %s",
           (const char*)_fullyQualifiedProviderName.getCString()));
   
       try
       {
     _provider->initialize(cimom);     _provider->initialize(cimom);
 } }
       catch (CIMException& e)
       {
           PEG_TRACE((TRC_DISCARDED_DATA, Tracer::LEVEL1,
               "Caught CIMexception from provider %s initialize() method."
               " Code: %u Msg: %s",
               (const char*)_fullyQualifiedProviderName.getCString(),
                e.getCode(), cimStatusCodeToString(e.getCode()) ));
           throw;
       }
       catch (Exception& e)
       {
   
           PEG_TRACE((TRC_DISCARDED_DATA, Tracer::LEVEL1,
               "Caught Exception from provider %s initialize() method. %s",
               (const char*)_fullyQualifiedProviderName.getCString(),
               (const char*) e.getMessage().getCString() ));
           throw;
       }
        catch (...)
       {
           PEG_TRACE((TRC_DISCARDED_DATA, Tracer::LEVEL1,
               "Caught exception from provider %s initialize() method.",
               (const char*)_fullyQualifiedProviderName.getCString() ));
           throw;
       }
   
       PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
           "Returned from provider.initialize: %s",
           (const char*)_fullyQualifiedProviderName.getCString()));
   }
  
 void ProviderMessageHandler::terminate() void ProviderMessageHandler::terminate()
 { {
     _disableIndications();     _disableIndications();
  
       PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
           "Calling provider.terminate: %s",
           (const char*)_fullyQualifiedProviderName.getCString()));
   
     try     try
     {     {
         _provider->terminate();         _provider->terminate();
     }     }
     catch (...)     catch (...)
     {     {
         PEG_TRACE_STRING(TRC_DISCARDED_DATA, Tracer::LEVEL2,          PEG_TRACE((TRC_DISCARDED_DATA, Tracer::LEVEL1,
             "Caught exception from provider " + _name +              "Caught exception from provider %s terminate() method.",
                 " terminate() method.");              (const char*)_fullyQualifiedProviderName.getCString()));
           throw;
     }     }
   
       PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
           "Returned from provider.terminate: %s",
           (const char*)_fullyQualifiedProviderName.getCString()));
 } }
  
 void ProviderMessageHandler::subscriptionInitComplete() void ProviderMessageHandler::subscriptionInitComplete()
Line 164 
Line 229 
     _subscriptionInitComplete = true;     _subscriptionInitComplete = true;
 } }
  
   void ProviderMessageHandler::indicationServiceDisabled()
   {
       _subscriptionInitComplete = false;
   }
   
 CIMResponseMessage* ProviderMessageHandler::processMessage( CIMResponseMessage* ProviderMessageHandler::processMessage(
     CIMRequestMessage* request)     CIMRequestMessage* request)
 { {
Line 250 
Line 320 
             break;             break;
  
         default:         default:
             PEGASUS_ASSERT(0);              PEGASUS_UNREACHABLE(PEGASUS_ASSERT(0);)
             break;             break;
         }         }
     }     }
     catch (CIMException& e)     catch (CIMException& e)
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2,          PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1,"CIMException: %s",
             "CIMException: " + e.getMessage());              (const char*)e.getMessage().getCString()));
         response = request->buildResponse();         response = request->buildResponse();
         response->cimException = PEGASUS_CIM_EXCEPTION_LANG(         response->cimException = PEGASUS_CIM_EXCEPTION_LANG(
             e.getContentLanguages(), e.getCode(), e.getMessage());             e.getContentLanguages(), e.getCode(), e.getMessage());
     }     }
     catch (Exception& e)     catch (Exception& e)
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2,          PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1,"Exception: %s",
             "Exception: " + e.getMessage());              (const char*)e.getMessage().getCString()));
         response = request->buildResponse();         response = request->buildResponse();
         response->cimException = PEGASUS_CIM_EXCEPTION_LANG(         response->cimException = PEGASUS_CIM_EXCEPTION_LANG(
             e.getContentLanguages(), CIM_ERR_FAILED, e.getMessage());             e.getContentLanguages(), CIM_ERR_FAILED, e.getMessage());
     }     }
     catch (...)     catch (...)
     {     {
         PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2,          PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL1,
             "Exception: Unknown");             "Exception: Unknown");
         response = request->buildResponse();         response = request->buildResponse();
         response->cimException = PEGASUS_CIM_EXCEPTION(         response->cimException = PEGASUS_CIM_EXCEPTION(
Line 293 
Line 363 
     providerContext.insert(context.get(AcceptLanguageListContainer::NAME));     providerContext.insert(context.get(AcceptLanguageListContainer::NAME));
     providerContext.insert(context.get(ContentLanguageListContainer::NAME));     providerContext.insert(context.get(ContentLanguageListContainer::NAME));
  
       if (context.contains(UserRoleContainer::NAME))
       {
           providerContext.insert(context.get(UserRoleContainer::NAME));
       }
   
     return providerContext;     return providerContext;
 } }
  
Line 322 
Line 397 
         request->instanceName.getClassName(),         request->instanceName.getClassName(),
         request->instanceName.getKeyBindings());         request->instanceName.getKeyBindings());
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,      PEG_TRACE((
           TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleGetInstanceRequest - "         "ProviderMessageHandler::_handleGetInstanceRequest - "
             "Object path: $0",              "Object path: %s",
         objectPath.toString()));          (const char*) objectPath.toString().getCString()));
  
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.getInstance: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           getInstance,
         provider->getInstance(         provider->getInstance(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 348 
Line 423 
             request->includeClassOrigin,             request->includeClassOrigin,
             request->propertyList,             request->propertyList,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 379 
Line 454 
         request->nameSpace,         request->nameSpace,
         request->className);         request->className);
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,      PEG_TRACE((
           TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleEnumerateInstancesRequest - "         "ProviderMessageHandler::_handleEnumerateInstancesRequest - "
             "Object path: $0",              "Object path: %s",
         objectPath.toString()));          (const char*) objectPath.toString().getCString()));
  
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.enumerateInstances: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           enumerateInstances,
         provider->enumerateInstances(         provider->enumerateInstances(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 405 
Line 480 
             request->includeClassOrigin,             request->includeClassOrigin,
             request->propertyList,             request->propertyList,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 437 
Line 512 
         request->nameSpace,         request->nameSpace,
         request->className);         request->className);
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,      PEG_TRACE((
           TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleEnumerateInstanceNamesRequest - "         "ProviderMessageHandler::_handleEnumerateInstanceNamesRequest - "
             "Object path: $0",              "Object path: %s",
         objectPath.toString()));          (const char*) objectPath.toString().getCString()));
  
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.enumerateInstanceNames: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           enumerateInstanceNames,
         provider->enumerateInstanceNames(         provider->enumerateInstanceNames(
             providerContext,             providerContext,
             objectPath,             objectPath,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 492 
Line 567 
         request->newInstance.getPath().getClassName(),         request->newInstance.getPath().getClassName(),
         request->newInstance.getPath().getKeyBindings());         request->newInstance.getPath().getKeyBindings());
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,      PEG_TRACE((
           TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleCreateInstanceRequest - "         "ProviderMessageHandler::_handleCreateInstanceRequest - "
             "Object path: $0",              "Object path: %s",
         objectPath.toString()));          (const char*) objectPath.toString().getCString()));
  
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.createInstance: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           createInstance,
         provider->createInstance(         provider->createInstance(
             providerContext,             providerContext,
             objectPath,             objectPath,
             request->newInstance,             request->newInstance,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 548 
Line 623 
         request->modifiedInstance.getPath().getClassName(),         request->modifiedInstance.getPath().getClassName(),
         request->modifiedInstance.getPath().getKeyBindings());         request->modifiedInstance.getPath().getKeyBindings());
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,      PEG_TRACE((
           TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleModifyInstanceRequest - "         "ProviderMessageHandler::_handleModifyInstanceRequest - "
             "Object path: $0",              "Object path: %s",
         objectPath.toString()));          (const char*) objectPath.toString().getCString()));
  
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.modifyInstance: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           modifyInstance,
         provider->modifyInstance(         provider->modifyInstance(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 574 
Line 649 
             request->includeQualifiers,             request->includeQualifiers,
             request->propertyList,             request->propertyList,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 606 
Line 681 
         request->instanceName.getClassName(),         request->instanceName.getClassName(),
         request->instanceName.getKeyBindings());         request->instanceName.getKeyBindings());
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,      PEG_TRACE((
           TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleDeleteInstanceRequest - "         "ProviderMessageHandler::_handleDeleteInstanceRequest - "
             "Object path: $0",              "Object path: %s",
         objectPath.toString()));          (const char*) objectPath.toString().getCString()));
  
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.deleteInstance: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           deleteInstance,
         provider->deleteInstance(         provider->deleteInstance(
             providerContext,             providerContext,
             objectPath,             objectPath,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 660 
Line 735 
         request->nameSpace,         request->nameSpace,
         request->className);         request->className);
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,      PEG_TRACE((
           TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleExecQueryRequest - "         "ProviderMessageHandler::_handleExecQueryRequest - "
             "Object path: $0",              "Object path: %s",
         objectPath.toString()));          (const char*) objectPath.toString().getCString()));
  
     QueryExpression qx(request->queryLanguage,request->query);     QueryExpression qx(request->queryLanguage,request->query);
  
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceQueryProvider* provider =     CIMInstanceQueryProvider* provider =
         getProviderInterface<CIMInstanceQueryProvider>(_provider);         getProviderInterface<CIMInstanceQueryProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.execQuery: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           execQuery,
         provider->execQuery(         provider->execQuery(
             providerContext,             providerContext,
             objectPath,             objectPath,
             qx,             qx,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 719 
Line 794 
  
     objectPath.setKeyBindings(request->objectName.getKeyBindings());     objectPath.setKeyBindings(request->objectName.getKeyBindings());
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,      PEG_TRACE((
           TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleAssociatorsRequest - "         "ProviderMessageHandler::_handleAssociatorsRequest - "
             "Object path: $0",              "Object path: %s",
         objectPath.toString()));          (const char*) objectPath.toString().getCString()));
  
     CIMObjectPath assocPath(     CIMObjectPath assocPath(
         System::getHostName(),         System::getHostName(),
Line 732 
Line 809 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMAssociationProvider* provider =     CIMAssociationProvider* provider =
         getProviderInterface<CIMAssociationProvider>(_provider);         getProviderInterface<CIMAssociationProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.associators: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           associators,
         provider->associators(         provider->associators(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 754 
Line 829 
             request->includeClassOrigin,             request->includeClassOrigin,
             request->propertyList,             request->propertyList,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 787 
Line 862 
  
     objectPath.setKeyBindings(request->objectName.getKeyBindings());     objectPath.setKeyBindings(request->objectName.getKeyBindings());
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,      PEG_TRACE((
           TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleAssociationNamesRequest - "         "ProviderMessageHandler::_handleAssociationNamesRequest - "
             "Object path: $0",              "Object path: %s",
         objectPath.toString()));          (const char*) objectPath.toString().getCString()));
  
     CIMObjectPath assocPath(     CIMObjectPath assocPath(
         System::getHostName(),         System::getHostName(),
Line 800 
Line 877 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMAssociationProvider* provider =     CIMAssociationProvider* provider =
         getProviderInterface<CIMAssociationProvider>(_provider);         getProviderInterface<CIMAssociationProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.associatorNames: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           associatorNames,
         provider->associatorNames(         provider->associatorNames(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 819 
Line 894 
             request->role,             request->role,
             request->resultRole,             request->resultRole,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 852 
Line 927 
  
     objectPath.setKeyBindings(request->objectName.getKeyBindings());     objectPath.setKeyBindings(request->objectName.getKeyBindings());
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,      PEG_TRACE((
           TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleReferencesRequest - "         "ProviderMessageHandler::_handleReferencesRequest - "
             "Object path: $0",              "Object path: %s",
         objectPath.toString()));          (const char*) objectPath.toString().getCString()));
  
     CIMObjectPath resultPath(     CIMObjectPath resultPath(
         System::getHostName(),         System::getHostName(),
Line 865 
Line 942 
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMAssociationProvider* provider =     CIMAssociationProvider* provider =
         getProviderInterface<CIMAssociationProvider>(_provider);         getProviderInterface<CIMAssociationProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.references: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           references,
         provider->references(         provider->references(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 885 
Line 960 
             request->includeClassOrigin,             request->includeClassOrigin,
             request->propertyList,             request->propertyList,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 918 
Line 993 
  
     objectPath.setKeyBindings(request->objectName.getKeyBindings());     objectPath.setKeyBindings(request->objectName.getKeyBindings());
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,      PEG_TRACE((
           TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleReferenceNamesRequest - "         "ProviderMessageHandler::_handleReferenceNamesRequest - "
             "Object path: $0",              "Object path: %s",
         objectPath.toString()));          (const char*) objectPath.toString().getCString()));
  
     CIMObjectPath resultPath(      // KS_TODO Confirm that the following is cruft and not needed.
         System::getHostName(),  //    CIMObjectPath resultPath(
         request->nameSpace,  //       System::getHostName(),
         request->resultClass.getString());  //        request->nameSpace,
   //        request->resultClass.getString());
  
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMAssociationProvider* provider =     CIMAssociationProvider* provider =
         getProviderInterface<CIMAssociationProvider>(_provider);         getProviderInterface<CIMAssociationProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.referenceNames: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           referenceNames,
         provider->referenceNames(         provider->referenceNames(
             providerContext,             providerContext,
             objectPath,             objectPath,
             request->resultClass,             request->resultClass,
             request->role,             request->role,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 980 
Line 1056 
         request->messageId,         request->messageId,
         request->nameSpace,         request->nameSpace,
         request->instanceName,         request->instanceName,
         false,  // localOnly  
         false,  // includeQualifiers         false,  // includeQualifiers
         false,  // includeClassOrigin         false,  // includeClassOrigin
         propertyList,         propertyList,
Line 1008 
Line 1083 
         getInstanceRequest.instanceName.getClassName(),         getInstanceRequest.instanceName.getClassName(),
         getInstanceRequest.instanceName.getKeyBindings());         getInstanceRequest.instanceName.getKeyBindings());
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,      PEG_TRACE((
           TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleGetPropertyRequest - "         "ProviderMessageHandler::_handleGetPropertyRequest - "
             "Object path: $0, Property: $1",              "Object path: %s, Property: %s",
         objectPath.toString(), request->propertyName.getString()));          (const char*) objectPath.toString().getCString(),
           (const char*) request->propertyName.getString().getCString()));
  
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(getInstanceRequest.operationContext));         _createProviderOperationContext(getInstanceRequest.operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.getInstance: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           getInstance,
         provider->getInstance(         provider->getInstance(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 1034 
Line 1110 
             getInstanceRequest.includeClassOrigin,             getInstanceRequest.includeClassOrigin,
             getInstanceRequest.propertyList,             getInstanceRequest.propertyList,
             handler),             handler),
         handler)          handler);
  
     //     //
     // Copy the GetInstance response into the GetProperty response message     // Copy the GetInstance response into the GetProperty response message
Line 1044 
Line 1120 
  
     if (response->cimException.getCode() == CIM_ERR_SUCCESS)     if (response->cimException.getCode() == CIM_ERR_SUCCESS)
     {     {
         CIMInstance instance = getInstanceResponse->cimInstance;          CIMInstance instance =
               getInstanceResponse->getResponseData().getInstance();
  
         Uint32 pos = instance.findProperty(request->propertyName);         Uint32 pos = instance.findProperty(request->propertyName);
  
Line 1123 
Line 1200 
     ModifyInstanceResponseHandler handler(     ModifyInstanceResponseHandler handler(
         &modifyInstanceRequest, modifyInstanceResponse.get(), 0);         &modifyInstanceRequest, modifyInstanceResponse.get(), 0);
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,      PEG_TRACE((
           TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleSetPropertyRequest - "         "ProviderMessageHandler::_handleSetPropertyRequest - "
             "Object path: $0, Property: $1",              "Object path: %s, Property: %s",
         objectPath.toString(), request->propertyName.getString()));          (const char*) objectPath.toString().getCString(),
           (const char*) request->propertyName.getString().getCString()));
  
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMInstanceProvider* provider =     CIMInstanceProvider* provider =
         getProviderInterface<CIMInstanceProvider>(_provider);         getProviderInterface<CIMInstanceProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.modifyInstance: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           modifyInstance,
         provider->modifyInstance(         provider->modifyInstance(
             providerContext,             providerContext,
             objectPath,             objectPath,
Line 1149 
Line 1227 
             modifyInstanceRequest.includeQualifiers,             modifyInstanceRequest.includeQualifiers,
             modifyInstanceRequest.propertyList,             modifyInstanceRequest.propertyList,
             handler),             handler),
         handler)          handler);
  
     //     //
     // Copy the ModifyInstance response into the GetProperty response message     // Copy the ModifyInstance response into the GetProperty response message
Line 1188 
Line 1266 
         request->instanceName.getClassName(),         request->instanceName.getClassName(),
         request->instanceName.getKeyBindings());         request->instanceName.getKeyBindings());
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,      PEG_TRACE((
           TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleInvokeMethodRequest - "         "ProviderMessageHandler::_handleInvokeMethodRequest - "
             "Object path: $0, Method: $1",              "Object path: %s, Method: %s",
         objectPath.toString(), request->methodName.getString()));          (const char*) objectPath.toString().getCString(),
           (const char*) request->methodName.getString().getCString()));
  
     OperationContext providerContext(     OperationContext providerContext(
         _createProviderOperationContext(request->operationContext));         _createProviderOperationContext(request->operationContext));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMMethodProvider* provider =     CIMMethodProvider* provider =
         getProviderInterface<CIMMethodProvider>(_provider);         getProviderInterface<CIMMethodProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.invokeMethod: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           invokeMethod,
         provider->invokeMethod(         provider->invokeMethod(
             providerContext,             providerContext,
             objectPath,             objectPath,
             request->methodName,             request->methodName,
             request->inParameters,             request->inParameters,
             handler),             handler),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 1249 
Line 1328 
         }         }
     }     }
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,      PEG_TRACE((
         Logger::TRACE,          TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleCreateSubscriptionRequest - "         "ProviderMessageHandler::_handleCreateSubscriptionRequest - "
             "Host name: $0  Name space: $1  Class name(s): $2",              "Host name: %s  Name space: %s  Class name(s): %s",
         System::getHostName(),          (const char*) System::getHostName().getCString(),
         request->nameSpace.getString(),          (const char*) request->nameSpace.getString().getCString(),
         temp));          (const char*) temp.getCString()));
  
     //     //
     //  Save the provider instance from the request     //  Save the provider instance from the request
Line 1287 
Line 1367 
     providerContext.insert(request->operationContext.get(     providerContext.insert(request->operationContext.get(
         SubscriptionFilterQueryContainer::NAME));         SubscriptionFilterQueryContainer::NAME));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMIndicationProvider* provider =     CIMIndicationProvider* provider =
         getProviderInterface<CIMIndicationProvider>(_provider);         getProviderInterface<CIMIndicationProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.createSubscription: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           createSubscription,
         provider->createSubscription(         provider->createSubscription(
             providerContext,             providerContext,
             request->subscriptionInstance.getPath(),             request->subscriptionInstance.getPath(),
             classNames,             classNames,
             request->propertyList,             request->propertyList,
             request->repeatNotificationPolicy),             request->repeatNotificationPolicy),
         handler)          handler);
  
     //     //
     //  Increment count of current subscriptions for this provider     //  Increment count of current subscriptions for this provider
Line 1359 
Line 1437 
         }         }
     }     }
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,      PEG_TRACE((
         Logger::TRACE,          TRC_PROVIDERMANAGER,
         "ProviderMessageHandler::_handleCreateSubscriptionRequest - "          Tracer::LEVEL3,
             "Host name: $0  Name space: $1  Class name(s): $2",          "ProviderMessageHandler::_handleModifySubscriptionRequest - "
         System::getHostName(),              "Host name: %s  Name space: %s  Class name(s): %s",
         request->nameSpace.getString(),          (const char*) System::getHostName().getCString(),
         temp));          (const char*) request->nameSpace.getString().getCString(),
           (const char*) temp.getCString()));
  
     // convert arguments     // convert arguments
  
Line 1390 
Line 1469 
     providerContext.insert(request->operationContext.get(     providerContext.insert(request->operationContext.get(
         SubscriptionFilterQueryContainer::NAME));         SubscriptionFilterQueryContainer::NAME));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMIndicationProvider* provider =     CIMIndicationProvider* provider =
         getProviderInterface<CIMIndicationProvider>(_provider);         getProviderInterface<CIMIndicationProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.modifySubscription: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           modifySubscription,
         provider->modifySubscription(         provider->modifySubscription(
             providerContext,             providerContext,
             request->subscriptionInstance.getPath(),             request->subscriptionInstance.getPath(),
             classNames,             classNames,
             request->propertyList,             request->propertyList,
             request->repeatNotificationPolicy),             request->repeatNotificationPolicy),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 1443 
Line 1520 
         }         }
     }     }
  
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,      PEG_TRACE((
         Logger::TRACE,          TRC_PROVIDERMANAGER,
           Tracer::LEVEL3,
         "ProviderMessageHandler::_handleDeleteSubscriptionRequest - "         "ProviderMessageHandler::_handleDeleteSubscriptionRequest - "
             "Host name: $0  Name space: $1  Class name(s): $2",              "Host name: %s  Name space: %s  Class name(s): %s",
         System::getHostName(),          (const char*) System::getHostName().getCString(),
         request->nameSpace.getString(),          (const char*) request->nameSpace.getString().getCString(),
         temp));          (const char*) temp.getCString()));
  
     Array<CIMObjectPath> classNames;     Array<CIMObjectPath> classNames;
  
Line 1468 
Line 1546 
     providerContext.insert(request->operationContext.get(     providerContext.insert(request->operationContext.get(
         SubscriptionInstanceContainer::NAME));         SubscriptionInstanceContainer::NAME));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);      AutoPThreadSecurity threadLevelSecurity(request->operationContext);
  
     CIMIndicationProvider* provider =     CIMIndicationProvider* provider =
         getProviderInterface<CIMIndicationProvider>(_provider);         getProviderInterface<CIMIndicationProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.deleteSubscription: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           deleteSubscription,
         provider->deleteSubscription(         provider->deleteSubscription(
             providerContext,             providerContext,
             request->subscriptionInstance.getPath(),             request->subscriptionInstance.getPath(),
             classNames),             classNames),
         handler)          handler);
  
     //     //
     //  Decrement count of current subscriptions for this provider     //  Decrement count of current subscriptions for this provider
Line 1534 
Line 1610 
     providerContext.insert(request->operationContext.get(     providerContext.insert(request->operationContext.get(
         ContentLanguageListContainer::NAME));         ContentLanguageListContainer::NAME));
  
     AutoPThreadSecurity threadLevelSecurity(providerContext);  
   
     CIMIndicationConsumerProvider* provider =     CIMIndicationConsumerProvider* provider =
         getProviderInterface<CIMIndicationConsumerProvider>(_provider);         getProviderInterface<CIMIndicationConsumerProvider>(_provider);
  
     PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
         "Calling provider.consumeIndication: " + _name);  
   
     StatProviderTimeMeasurement providerTime(response.get());     StatProviderTimeMeasurement providerTime(response.get());
  
     HANDLE_PROVIDER_EXCEPTION(      HANDLE_PROVIDER_CALL(
           consumeIndication,
         provider->consumeIndication(         provider->consumeIndication(
             providerContext,             providerContext,
             request->destinationPath,             request->destinationPath,
             request->indicationInstance),             request->indicationInstance),
         handler)          handler);
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return response.release();     return response.release();
Line 1577 
Line 1649 
         CIMIndicationProvider* provider =         CIMIndicationProvider* provider =
             getProviderInterface<CIMIndicationProvider>(_provider);             getProviderInterface<CIMIndicationProvider>(_provider);
  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,          PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Calling provider.enableIndications: " + _name);              "Calling provider.enableIndications: %s",
               (const char*)_fullyQualifiedProviderName.getCString()));
  
           try
           {
         provider->enableIndications(*indicationResponseHandler);         provider->enableIndications(*indicationResponseHandler);
     }     }
     catch (Exception& e)          catch (...)
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2,              PEG_TRACE((TRC_DISCARDED_DATA, Tracer::LEVEL1,
             "Exception: " + e.getMessage());                  "Caught exception from provider %s "
                       "enableIndications() method.",
                   (const char*)_fullyQualifiedProviderName.getCString()));
               throw;
           }
  
           PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
               "Returned from provider.enableIndications: %s",
               (const char*)_fullyQualifiedProviderName.getCString()));
       }
       catch (Exception& e)
       {
         Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::WARNING,         Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::WARNING,
               MessageLoaderParms(
             "ProviderManager.Default.DefaultProviderManager."             "ProviderManager.Default.DefaultProviderManager."
                 "ENABLE_INDICATIONS_FAILED",                 "ENABLE_INDICATIONS_FAILED",
             "Failed to enable indications for provider $0: $1.",             "Failed to enable indications for provider $0: $1.",
             _name, e.getMessage());                   _fullyQualifiedProviderName, e.getMessage()));
     }     }
     catch(...)     catch(...)
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2,  
             "Unexpected error in _enableIndications");  
   
         Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::WARNING,         Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::WARNING,
               MessageLoaderParms(
             "ProviderManager.Default.DefaultProviderManager."             "ProviderManager.Default.DefaultProviderManager."
                 "ENABLE_INDICATIONS_FAILED_UNKNOWN",                 "ENABLE_INDICATIONS_FAILED_UNKNOWN",
             "Failed to enable indications for provider $0.",             "Failed to enable indications for provider $0.",
             _name);                  _fullyQualifiedProviderName));
     }     }
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
Line 1620 
Line 1704 
             CIMIndicationProvider* provider =             CIMIndicationProvider* provider =
                 getProviderInterface<CIMIndicationProvider>(_provider);                 getProviderInterface<CIMIndicationProvider>(_provider);
  
             PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,              PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                 "Calling provider.disableIndications: " + _name);                  "Calling provider.disableIndications: %s",
                   (const char*)_fullyQualifiedProviderName.getCString()));
  
             try             try
             {             {
Line 1629 
Line 1714 
             }             }
             catch (...)             catch (...)
             {             {
                 PEG_TRACE_STRING(TRC_DISCARDED_DATA, Tracer::LEVEL2,                  PEG_TRACE((TRC_DISCARDED_DATA, Tracer::LEVEL1,
                     "Caught exception from provider " + _name +                      "Caught exception from provider %s "
                         " disableIndications() method.");                          "disableIndications() method.",
                       (const char*)_fullyQualifiedProviderName.getCString()));
                   throw;
             }             }
  
               PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                   "Returned from  provider.disableIndications: %s",
                   (const char*)_fullyQualifiedProviderName.getCString()));
   
             status.setIndicationsEnabled(false);             status.setIndicationsEnabled(false);
  
             status.resetSubscriptions();             status.resetSubscriptions();
  
             PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,              PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                 "Destroying indication response handler for " + _name);                  "Destroying indication response handler for %s",
                   (const char*)_fullyQualifiedProviderName.getCString()));
  
             delete _indicationResponseHandler;             delete _indicationResponseHandler;
             _indicationResponseHandler = 0;             _indicationResponseHandler = 0;
Line 1647 
Line 1739 
     }     }
     catch(...)     catch(...)
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL3,          PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL3,
             "Error occured disabling indications in provider " + _name);              "Error occured disabling indications in provider %s",
               (const char*)_fullyQualifiedProviderName.getCString()));
     }     }
       PEG_METHOD_EXIT();
 } }
   
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END


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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2