blob: ccfe78f0640d279c1751f2bb76003f74ca996b6c [file] [log] [blame]
akmhoque298385a2014-02-13 14:13:09 -06001#ifndef NLSR_IM_HPP
2#define NLSR_IM_HPP
3
4#include <ndn-cpp-dev/face.hpp>
5#include <ndn-cpp-dev/security/key-chain.hpp>
6#include <ndn-cpp-dev/util/scheduler.hpp>
7
akmhoque1fd8c1e2014-02-19 19:41:49 -06008namespace nlsr
9{
akmhoque298385a2014-02-13 14:13:09 -060010
akmhoque1fd8c1e2014-02-19 19:41:49 -060011 using namespace ndn;
12 using namespace std;
akmhoque298385a2014-02-13 14:13:09 -060013
akmhoque1fd8c1e2014-02-19 19:41:49 -060014 class Nlsr;
akmhoque298385a2014-02-13 14:13:09 -060015
akmhoque1fd8c1e2014-02-19 19:41:49 -060016 class interestManager
17 {
18 public:
19 interestManager()
20 {
21 }
22 void processInterest(Nlsr& pnlsr, const ndn::Name &name,
23 const ndn::Interest &interest);
24 void processInterestInfo(Nlsr& pnlsr, string& neighbor,
25 const ndn::Interest &interest);
26 void processInterestTimedOut(Nlsr& pnlsr, const ndn::Interest &interest);
27 void processInterestTimedOutInfo(Nlsr& pnlsr, string& neighbor,
28 const ndn::Interest &interest);
29 void expressInterest(Nlsr& pnlsr,const string& interestNamePrefix, int scope,
30 int seconds);
31 void sendScheduledInfoInterest(Nlsr& pnlsr, int seconds);
32 void scheduleInfoInterest(Nlsr& pnlsr, int seconds);
akmhoque298385a2014-02-13 14:13:09 -060033
akmhoque1fd8c1e2014-02-19 19:41:49 -060034 private:
akmhoque298385a2014-02-13 14:13:09 -060035
36
akmhoque1fd8c1e2014-02-19 19:41:49 -060037 };
akmhoque298385a2014-02-13 14:13:09 -060038
akmhoqueb1710aa2014-02-19 17:13:36 -060039}//namespace nlsr
akmhoque298385a2014-02-13 14:13:09 -060040
41#endif