(file) Return to SubscriptionRepository.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / IndicationService

Diff for /pegasus/src/Pegasus/IndicationService/SubscriptionRepository.cpp between version 1.14.8.3 and 1.15

version 1.14.8.3, 2008/02/12 19:46:16 version 1.15, 2007/03/16 17:16:55
Line 29 
Line 29 
 // //
 //============================================================================== //==============================================================================
 // //
   // Author: Carol Ann Krug Graves, Hewlett-Packard Company
   //             (carolann_graves@hp.com)
   //
   // Modified By: David Dillard, VERITAS Software Corp.
   //                  (david.dillard@veritas.com)
   //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
 #include <Pegasus/Common/Config.h> #include <Pegasus/Common/Config.h>
Line 37 
Line 43 
  
 #include "IndicationConstants.h" #include "IndicationConstants.h"
 #include "SubscriptionRepository.h" #include "SubscriptionRepository.h"
 #include "IndicationMessageConstants.h"  
  
 PEGASUS_USING_STD; PEGASUS_USING_STD;
  
Line 47 
Line 52 
     CIMRepository * repository)     CIMRepository * repository)
     : _repository (repository)     : _repository (repository)
 { {
     _normalizedSubscriptionTable.reset(  
         new NormalizedSubscriptionTable(getAllSubscriptions()));  
 } }
  
 SubscriptionRepository::~SubscriptionRepository () SubscriptionRepository::~SubscriptionRepository ()
 { {
 } }
  
 void SubscriptionRepository::beginCreateSubscription(  
     const CIMObjectPath &subPath)  
 {  
     Boolean subscriptionExists;  
     AutoMutex mtx(_normalizedSubscriptionTableMutex);  
     if(_normalizedSubscriptionTable->exists(subPath, subscriptionExists))  
     {  
         if (subscriptionExists)  
         {  
             throw PEGASUS_CIM_EXCEPTION(CIM_ERR_ALREADY_EXISTS,  
                 subPath.toString());  
         }  
         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,  
                   MessageLoaderParms(_MSG_DUPLICATE_SUBSCRIPTION_REQUEST_KEY,  
                       _MSG_DUPLICATE_SUBSCRIPTION_REQUEST, subPath.toString()));  
     }  
     _normalizedSubscriptionTable->add(subPath, false);  
 }  
   
 void SubscriptionRepository::cancelCreateSubscription(  
     const CIMObjectPath &subPath)  
 {  
     AutoMutex mtx(_normalizedSubscriptionTableMutex);  
     _normalizedSubscriptionTable->remove(subPath);  
 }  
   
 void SubscriptionRepository::commitCreateSubscription(  
     const CIMObjectPath &subPath)  
 {  
     AutoMutex mtx(_normalizedSubscriptionTableMutex);  
     _normalizedSubscriptionTable->remove(subPath);  
     _normalizedSubscriptionTable->add(subPath, true);  
 }  
   
 CIMObjectPath SubscriptionRepository::createInstance ( CIMObjectPath SubscriptionRepository::createInstance (
     CIMInstance instance,     CIMInstance instance,
     const CIMNamespaceName & nameSpace,     const CIMNamespaceName & nameSpace,
Line 401 
Line 370 
     PEG_METHOD_ENTER (TRC_INDICATION_SERVICE,     PEG_METHOD_ENTER (TRC_INDICATION_SERVICE,
         "SubscriptionRepository::getState");         "SubscriptionRepository::getState");
  
     Uint32 stateIndex = instance.findProperty      Uint32 stateIndex = instance.findProperty (PEGASUS_PROPERTYNAME_SUBSCRIPTION_STATE);
         (PEGASUS_PROPERTYNAME_SUBSCRIPTION_STATE);  
     if (stateIndex != PEG_NOT_FOUND)     if (stateIndex != PEG_NOT_FOUND)
     {     {
         CIMValue stateValue = instance.getProperty         CIMValue stateValue = instance.getProperty
Line 496 
Line 464 
     //     //
     try     try
     {     {
         deleteInstance (nameSpace, subscription);          _repository->deleteInstance (nameSpace, subscription);
     }     }
     catch (Exception & exception)     catch (Exception & exception)
     {     {
Line 595 
Line 563 
                     CIMObjectPath path ("", CIMNamespaceName (),                     CIMObjectPath path ("", CIMNamespaceName (),
                         subscriptions [i].getPath ().getClassName (),                         subscriptions [i].getPath ().getClassName (),
                         subscriptions [i].getPath ().getKeyBindings ());                         subscriptions [i].getPath ().getKeyBindings ());
                     deleteInstance                      _repository->deleteInstance
                         (subscriptions [i].getPath ().getNameSpace (), path);                         (subscriptions [i].getPath ().getNameSpace (), path);
                 }                 }
                 catch (Exception & exception)                 catch (Exception & exception)
Line 1046 
Line 1014 
     const CIMObjectPath & instanceName)     const CIMObjectPath & instanceName)
 { {
     _repository->deleteInstance (nameSpace, instanceName);     _repository->deleteInstance (nameSpace, instanceName);
     // If deleted instance was SubscriptionInstance, delete from  
     // Normalized subscriptions table.  
     if (instanceName.getClassName().equal(  
         PEGASUS_CLASSNAME_INDSUBSCRIPTION) ||  
         instanceName.getClassName ().equal(  
             PEGASUS_CLASSNAME_FORMATTEDINDSUBSCRIPTION))  
     {  
         CIMObjectPath tmpPath = instanceName;  
         tmpPath.setNameSpace(nameSpace);  
         _normalizedSubscriptionTable->remove(tmpPath);  
     }  
 } }
  
 Array <CIMInstance> SubscriptionRepository::enumerateInstancesForClass ( Array <CIMInstance> SubscriptionRepository::enumerateInstancesForClass (
Line 1146 
Line 1103 
     //     //
     try     try
     {     {
         deleteInstance          _repository->deleteInstance
             (subscription.getPath ().getNameSpace (),             (subscription.getPath ().getNameSpace (),
             subscription.getPath ());             subscription.getPath ());
     }     }


Legend:
Removed from v.1.14.8.3  
changed lines
  Added in v.1.15

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2