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

Diff for /pegasus/src/Pegasus/IndicationService/IndicationService.cpp between version 1.289 and 1.290

version 1.289, 2013/05/14 06:17:24 version 1.290, 2013/06/11 11:18:32
Line 419 
Line 419 
  
     stopWatch.start();     stopWatch.start();
 #endif #endif
   
       if (message->getType() == CIM_PROCESS_INDICATION_RESPONSE_MESSAGE)
       {
           _handleProcessIndicationResponse(message);
           return;
       }
   
     CIMRequestMessage* cimRequest = dynamic_cast<CIMRequestMessage *>(message);     CIMRequestMessage* cimRequest = dynamic_cast<CIMRequestMessage *>(message);
     PEGASUS_ASSERT(cimRequest);     PEGASUS_ASSERT(cimRequest);
  
Line 3120 
Line 3127 
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
 } }
  
   void IndicationService::_handleProcessIndicationResponse(Message* message)
   {
       PEG_METHOD_ENTER(TRC_INDICATION_SERVICE,
           "IndicationService::_handleProcessIndicationResponse");
   
       CIMProcessIndicationResponseMessage* response = dynamic_cast<
           CIMProcessIndicationResponseMessage*> (message);
       PEGASUS_ASSERT(response != 0);
   
       CIMInstance instance = response->subscription;
       try
       {
   
           if (!_subscriptionRepository->reconcileFatalError(instance))
           {
               delete message;
               PEG_METHOD_EXIT();
               return;
           }
   
           String creator = instance.getProperty (instance.findProperty
               (PEGASUS_PROPERTYNAME_INDSUB_CREATOR)).getValue ().toString ();
   
           AcceptLanguageList acceptLangs;
           Uint32 propIndex = instance.findProperty
               (PEGASUS_PROPERTYNAME_INDSUB_ACCEPTLANGS);
           if (propIndex != PEG_NOT_FOUND)
           {
               String acceptLangsString;
               instance.getProperty(propIndex).getValue().get(acceptLangsString);
               if (acceptLangsString.size())
               {
                   acceptLangs = LanguageParser::parseAcceptLanguageHeader(
                       acceptLangsString);
               }
           }
           ContentLanguageList contentLangs;
           propIndex = instance.findProperty(
              PEGASUS_PROPERTYNAME_INDSUB_CONTENTLANGS);
   
           if (propIndex != PEG_NOT_FOUND)
           {
               String contentLangsString;
               instance.getProperty(propIndex).getValue().get(contentLangsString);
               if (contentLangsString.size())
               {
                   contentLangs = LanguageParser::parseContentLanguageHeader(
                       contentLangsString);
               }
           }
           Array<NamespaceClassList> indicationSubclasses;
           Array<ProviderClassList> indicationProviders;
           indicationProviders = _getDeleteParams(instance, indicationSubclasses);
           PEGASUS_ASSERT(indicationProviders.size() > 0);
   
           _subscriptionTable->removeSubscription(
               instance,
               indicationSubclasses,
               indicationProviders);
   
           _sendWaitDeleteRequests (
               indicationProviders,
               instance,
               acceptLangs,
               contentLangs,
               creator);
   #ifdef PEGASUS_ENABLE_DMTF_INDICATION_PROFILE_SUPPORT
           _sendSubscriptionNotActiveMessagetoHandlerService(instance.getPath());
   #endif
       }
       catch(const Exception &e)
       {
           PEG_TRACE ((TRC_DISCARDED_DATA, Tracer::LEVEL2,
               "Exception caught trying to reconcile the subscription's"
                   " OnFatalErrorPolicy %s",
               (const char *) e.getMessage ().getCString()));
       }
       catch(...)
       {
           PEG_TRACE ((TRC_DISCARDED_DATA, Tracer::LEVEL2,
               "Unknown exception caught trying to reconcile the subscription's"
                   " OnFatalErrorPolicy"));
       }
       delete message;
       PEG_METHOD_EXIT();
   }
   
   
 // l10n TODO - might need to globalize another flow and another consumer // l10n TODO - might need to globalize another flow and another consumer
 // interface (ie. mdd's) if we can't agree on one export flow and consumer // interface (ie. mdd's) if we can't agree on one export flow and consumer
 // interface (see PEP67) // interface (see PEP67)


Legend:
Removed from v.1.289  
changed lines
  Added in v.1.290

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2