blob: 5975e7ff65a21a509b18b0bfba9c0b5438cbd9c0 [file] [log] [blame]
akmhoque53353462014-04-22 08:43:45 -05001#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
8namespace nlsr {
9
10class Nlsr;
11
12class InterestManager
13{
14public:
15 InterestManager()
16 {
17 }
18 void
19 processInterest(Nlsr& pnlsr, const ndn::Name& name,
20 const ndn::Interest& interest);
21
22 void
23 processInterestInfo(Nlsr& pnlsr, std::string& neighbor,
24 const ndn::Interest& interest);
25
26 void
27 processInterestLsa(Nlsr& pnlsr, const ndn::Interest& interest);
28
29 void
30 processInterestForNameLsa(Nlsr& pnlsr, const ndn::Interest& interest,
31 std::string lsaKey, uint32_t interestedlsSeqNo);
32
33 void
34 processInterestForAdjLsa(Nlsr& pnlsr, const ndn::Interest& interest,
35 std::string lsaKey, uint32_t interestedlsSeqNo);
36
37 void
38 processInterestForCorLsa(Nlsr& pnlsr, const ndn::Interest& interest,
39 std::string lsaKey, uint32_t interestedlsSeqNo);
40
41 void
42 processInterestKeys(Nlsr& pnlsr, const ndn::Interest& interest);
43
44 void
45 processInterestTimedOut(Nlsr& pnlsr, const ndn::Interest& interest);
46
47 void
48 processInterestTimedOutInfo(Nlsr& pnlsr, std::string& neighbor,
49 const ndn::Interest& interest);
50
51 void
52 processInterestTimedOutLsa(Nlsr& pnlsr, const ndn::Interest& interest);
53
54 void
55 expressInterest(Nlsr& pnlsr,
56 const std::string& interestNamePrefix, int scope, int seconds);
57
58 void
59 sendScheduledInfoInterest(Nlsr& pnlsr, int seconds);
60
61 void
62 scheduleInfoInterest(Nlsr& pnlsr, int seconds);
63
64private:
65
66
67};
68
69}//namespace nlsr
70
71#endif //NLSR_IM_HPP