diff Framework/Messages/IObservable.cpp @ 977:262a0244e9b2 toa2019090201

Added missing Unregister for objects that register by the broker + logs + guard in FetchContext
author Benjamin Golinvaux <bgo@osimis.io>
date Mon, 02 Sep 2019 17:29:26 +0200
parents 38409549db43
children e713f1a99861 2d8ab34c8c91
line wrap: on
line diff
--- a/Framework/Messages/IObservable.cpp	Sat Aug 31 13:50:11 2019 +0200
+++ b/Framework/Messages/IObservable.cpp	Mon Sep 02 17:29:26 2019 +0200
@@ -66,6 +66,8 @@
 
   void IObservable::Unregister(IObserver *observer)
   {
+    LOG(TRACE) << "IObservable::Unregister for IObserver at addr: "
+      << std::hex << observer << std::dec;
     // delete all callables from this observer
     for (Callables::iterator itCallableSet = callables_.begin();
          itCallableSet != callables_.end(); ++itCallableSet)
@@ -75,6 +77,8 @@
       {
         if ((*itCallable)->GetObserver() == observer)
         {
+          LOG(TRACE) << "  ** IObservable::Unregister : deleting callable: "
+            << std::hex << (*itCallable) << std::dec;
           delete *itCallable;
           itCallableSet->second.erase(itCallable++);
         }
@@ -87,6 +91,8 @@
   void IObservable::EmitMessageInternal(const IObserver* receiver,
                                         const IMessage& message)
   {
+    LOG(TRACE) << "IObservable::EmitMessageInternal receiver = "
+      << std::hex << receiver << std::dec;
     Callables::const_iterator found = callables_.find(message.GetIdentifier());
 
     if (found != callables_.end())
@@ -119,9 +125,10 @@
   void IObservable::EmitMessage(const IObserver& observer,
                                 const IMessage& message)
   {
+    LOG(TRACE) << "IObservable::EmitMessage observer = "
+      << std::hex << &observer << std::dec;
     EmitMessageInternal(&observer, message);
   }
-
   
   void IObservable::RegisterForwarder(IMessageForwarder* forwarder)
   {