clean closure api
diff --git a/ccnx/ccnx-closure.cpp b/ccnx/ccnx-closure.cpp
index 528c721..bc9b244 100644
--- a/ccnx/ccnx-closure.cpp
+++ b/ccnx/ccnx-closure.cpp
@@ -2,15 +2,15 @@
namespace Ccnx {
-Closure::Closure(int retry, const DataCallback &dataCallback, const TimeoutCallback &timeoutCallback)
- : m_retry(retry), m_timeoutCallback(NULL), m_dataCallback(NULL)
+Closure::Closure(const DataCallback &dataCallback, const TimeoutCallback &timeoutCallback)
+ : m_timeoutCallback(NULL), m_dataCallback(NULL)
{
m_timeoutCallback = new TimeoutCallback (timeoutCallback);
m_dataCallback = new DataCallback (dataCallback);
}
Closure::Closure(const Closure &other)
- :m_retry(other.m_retry), m_timeoutCallback(NULL), m_dataCallback(NULL)
+ : m_timeoutCallback(NULL), m_dataCallback(NULL)
{
m_timeoutCallback = new TimeoutCallback(*(other.m_timeoutCallback));
m_dataCallback = new DataCallback(*(other.m_dataCallback));
diff --git a/ccnx/ccnx-closure.h b/ccnx/ccnx-closure.h
index f006d11..1bcaa06 100644
--- a/ccnx/ccnx-closure.h
+++ b/ccnx/ccnx-closure.h
@@ -21,10 +21,8 @@
typedef boost::function<TimeoutCallbackReturnValue (const Name &)> TimeoutCallback;
- Closure(int retry, const DataCallback &dataCallback, const TimeoutCallback &timeoutCallback = TimeoutCallback());
+ Closure(const DataCallback &dataCallback, const TimeoutCallback &timeoutCallback = TimeoutCallback());
Closure(const Closure &other);
- int getRetry() {return m_retry;}
- void decRetry() { m_retry--;}
virtual ~Closure();
virtual void
runDataCallback(const Name &name, const Bytes &content);
@@ -35,7 +33,6 @@
dup() const;
protected:
- int m_retry;
TimeoutCallback *m_timeoutCallback;
DataCallback *m_dataCallback;
};
diff --git a/ccnx/ccnx-tunnel.cpp b/ccnx/ccnx-tunnel.cpp
index dfefc8b..0808663 100644
--- a/ccnx/ccnx-tunnel.cpp
+++ b/ccnx/ccnx-tunnel.cpp
@@ -118,8 +118,8 @@
m_rit.erase(prefix);
}
-TunnelClosure::TunnelClosure(int retry, const DataCallback &dataCallback, CcnxTunnel *tunnel, const Name &originalInterest, const TimeoutCallback &timeoutCallback)
- : Closure(retry, dataCallback, timeoutCallback)
+TunnelClosure::TunnelClosure(const DataCallback &dataCallback, CcnxTunnel *tunnel, const Name &originalInterest, const TimeoutCallback &timeoutCallback)
+ : Closure(dataCallback, timeoutCallback)
, m_tunnel(tunnel)
, m_originalInterest(originalInterest)
{
@@ -134,7 +134,7 @@
Closure *
TunnelClosure::dup() const
{
- Closure *closure = new TunnelClosure(m_retry, *m_dataCallback, m_tunnel, m_originalInterest, *m_timeoutCallback);
+ Closure *closure = new TunnelClosure(*m_dataCallback, m_tunnel, m_originalInterest, *m_timeoutCallback);
return closure;
}
diff --git a/ccnx/ccnx-tunnel.h b/ccnx/ccnx-tunnel.h
index 104c7cf..05f981a 100644
--- a/ccnx/ccnx-tunnel.h
+++ b/ccnx/ccnx-tunnel.h
@@ -89,7 +89,7 @@
class TunnelClosure : public Closure
{
public:
- TunnelClosure(int retry, const DataCallback &dataCallback, CcnxTunnel *tunnel, const Name &originalInterest, const TimeoutCallback &timeoutCallback = TimeoutCallback());
+ TunnelClosure(const DataCallback &dataCallback, CcnxTunnel *tunnel, const Name &originalInterest, const TimeoutCallback &timeoutCallback = TimeoutCallback());
TunnelClosure(const Closure *closure, CcnxTunnel *tunnel, const Name &originalInterest);
diff --git a/ccnx/ccnx-wrapper.cpp b/ccnx/ccnx-wrapper.cpp
index 637b9af..b014a07 100644
--- a/ccnx/ccnx-wrapper.cpp
+++ b/ccnx/ccnx-wrapper.cpp
@@ -247,18 +247,16 @@
break;
case CCN_UPCALL_INTEREST_TIMED_OUT: {
- if (cp != NULL && cp->getRetry() > 0) {
- cp->decRetry();
- return CCN_UPCALL_RESULT_REEXPRESS;
- }
-
- Name interest(info->interest_ccnb, info->interest_comps);
- Closure::TimeoutCallbackReturnValue rv = cp->runTimeoutCallback(interest);
- switch(rv)
+ if (cp != NULL)
{
- case Closure::RESULT_OK : return CCN_UPCALL_RESULT_OK;
- case Closure::RESULT_REEXPRESS : return CCN_UPCALL_RESULT_REEXPRESS;
- default : break;
+ Name interest(info->interest_ccnb, info->interest_comps);
+ Closure::TimeoutCallbackReturnValue rv = cp->runTimeoutCallback(interest);
+ switch(rv)
+ {
+ case Closure::RESULT_OK : return CCN_UPCALL_RESULT_OK;
+ case Closure::RESULT_REEXPRESS : return CCN_UPCALL_RESULT_REEXPRESS;
+ default : break;
+ }
}
return CCN_UPCALL_RESULT_OK;
}
diff --git a/src/sync-core.cc b/src/sync-core.cc
index 9e5d0f4..1e9a947 100644
--- a/src/sync-core.cc
+++ b/src/sync-core.cc
@@ -67,8 +67,8 @@
, m_recoverWaitGenerator(new RandomIntervalGenerator(WAIT, RANDOM_PERCENT, RandomIntervalGenerator::UP))
{
m_rootHash = m_log->RememberStateInStateLog();
- m_syncClosure = new Closure(0, boost::bind(&SyncCore::handleSyncData, this, _1, _2), boost::bind(&SyncCore::handleSyncInterestTimeout, this, _1));
- m_recoverClosure = new Closure(0, boost::bind(&SyncCore::handleRecoverData, this, _1, _2), boost::bind(&SyncCore::handleRecoverInterestTimeout, this, _1));
+ m_syncClosure = new Closure(boost::bind(&SyncCore::handleSyncData, this, _1, _2), boost::bind(&SyncCore::handleSyncInterestTimeout, this, _1));
+ m_recoverClosure = new Closure(boost::bind(&SyncCore::handleRecoverData, this, _1, _2), boost::bind(&SyncCore::handleRecoverInterestTimeout, this, _1));
m_handle->setInterestFilter(m_syncPrefix, boost::bind(&SyncCore::handleInterest, this, _1));
m_log->initYP(m_yp);
m_scheduler->start();
diff --git a/test/test-ccnx-tunnel.cc b/test/test-ccnx-tunnel.cc
index 5a5abc5..6c2ab0d 100644
--- a/test/test-ccnx-tunnel.cc
+++ b/test/test-ccnx-tunnel.cc
@@ -82,14 +82,14 @@
g_dc_o = 0;
t1->publishData(Name(inner), (const unsigned char *)inner.c_str(), inner.size(), 5);
usleep(100000);
- Closure *outerClosure = new Closure(1, bind(outerCallback, _1, _2));
+ Closure *outerClosure = new Closure(bind(outerCallback, _1, _2));
c1->sendInterest(Name("/local/hello"), outerClosure);
usleep(100000);
// it is indeed published as /local/hello
BOOST_CHECK_EQUAL(g_dc_o, 1);
g_dc_i = 0;
- Closure *innerClosure = new Closure(1, bind(innerCallback, _1, _2));
+ Closure *innerClosure = new Closure(bind(innerCallback, _1, _2));
t2->sendInterest(Name(inner), innerClosure);
usleep(100000);
BOOST_CHECK_EQUAL(g_dc_i, 1);
@@ -107,7 +107,7 @@
t3.overridePrefix();
t3.setInterestFilter(Name("/t3"), bind(interestCallback, _1));
usleep(100000);
- Closure *innerClosure = new Closure(1, bind(innerCallback, _1, _2));
+ Closure *innerClosure = new Closure(bind(innerCallback, _1, _2));
t1->sendInterest(Name("/t3/hello"), innerClosure);
usleep(100000);
BOOST_CHECK_EQUAL(g_dc_i, 1);
diff --git a/test/test-ccnx-wrapper.cc b/test/test-ccnx-wrapper.cc
index 7c010ec..651692f 100644
--- a/test/test-ccnx-wrapper.cc
+++ b/test/test-ccnx-wrapper.cc
@@ -53,7 +53,7 @@
usleep(100000);
c2->setInterestFilter(prefix2, bind(publish2, _1));
- Closure *closure = new Closure(1, bind(dataCallback, _1, _2), bind(timeout, _1));
+ Closure *closure = new Closure(bind(dataCallback, _1, _2), bind(timeout, _1));
c1->sendInterest(Name("/c2/hi"), closure);
usleep(100000);
@@ -69,7 +69,7 @@
BOOST_AUTO_TEST_CASE (CcnxWrapperSelector)
{
- Closure *closure = new Closure(1, bind(dataCallback, _1, _2), bind(timeout, _1));
+ Closure *closure = new Closure(bind(dataCallback, _1, _2), bind(timeout, _1));
Selectors selectors;
selectors.interestLifetime(1);