Merge remote-tracking branch 'git.irl/dispatcher'

Conflicts:
	src/sync-core.cc
	src/sync-core.h
diff --git a/src/sync-core.cc b/src/sync-core.cc
index c0dc45b..d85093b 100644
--- a/src/sync-core.cc
+++ b/src/sync-core.cc
@@ -39,10 +39,10 @@
                    const StateMsgCallback &callback, CcnxWrapperPtr ccnx, SchedulerPtr scheduler)
   : m_ccnx (ccnx)
   , m_log(syncLog)
-  , m_scheduler(scheduler)
-  , m_stateMsgCallback(callback)
-  , m_syncPrefix(syncPrefix)
-  , m_recoverWaitGenerator(new RandomIntervalGenerator(WAIT, RANDOM_PERCENT, RandomIntervalGenerator::UP))
+         , m_scheduler(scheduler)
+         , m_stateMsgCallback(callback)
+         , m_syncPrefix(syncPrefix)
+         , m_recoverWaitGenerator(new RandomIntervalGenerator(WAIT, RANDOM_PERCENT, RandomIntervalGenerator::UP))
 {
   m_rootHash = m_log->RememberStateInStateLog();
 
@@ -60,12 +60,23 @@
 }
 
 void
+SyncCore::updateLocalPrefix (const Name &localPrefix)
+{
+  m_log->UpdateLocalLocator (localPrefix);
+}
+
+void
 SyncCore::updateLocalState(sqlite3_int64 seqno)
 {
   m_log->UpdateLocalSeqNo (seqno);
+  localStateChanged();
+}
 
+void
+SyncCore::localStateChanged()
+{
   HashPtr oldHash = m_rootHash;
-  m_rootHash = m_log->RememberStateInStateLog ();
+  m_rootHash = m_log->RememberStateInStateLog();
 
   SyncStateMsgPtr msg = m_log->FindStateDifferences(*oldHash, *m_rootHash);
 
@@ -79,7 +90,7 @@
 
   // no hurry in sending out new Sync Interest; if others send the new Sync Interest first, no problem, we know the new root hash already;
   // this is trying to avoid the situation that the order of SyncData and new Sync Interest gets reversed at receivers
-  Scheduler::scheduleOneTimeTask (m_scheduler, 0.1,
+  Scheduler::scheduleOneTimeTask (m_scheduler, 0.05,
                                   bind(&SyncCore::sendSyncInterest, this),
                                   lexical_cast<string> (*m_rootHash));
 
@@ -118,9 +129,9 @@
     m_ccnx->publishData(name, *syncData, FRESHNESS);
     _LOG_TRACE (m_log->GetLocalName () << " publishes " << hash);
     _LOG_TRACE (msg);
-  }
-  else
-  {
+      }
+      else
+      {
     // we don't recognize this hash, can not help
   }
 }
@@ -227,7 +238,7 @@
       {
         string locStr = state.locator();
         Name locatorName((const unsigned char *)locStr.c_str(), locStr.size());
-        // cout << ", Got loc: " << locatorName << endl;
+    //    cout << ", Got loc: " << locatorName << endl;
         m_log->UpdateLocator(deviceName, locatorName);
 
         _LOG_TRACE ("self: " << m_log->GetLocalName () << ", device: " << deviceName << " < == > " << locatorName);