blob: 3451c713bbad708588b334c2060a024f92f6bdd5 [file] [log] [blame]
akmhoquebd7c8e62014-02-01 14:57:40 -06001#ifndef NLSR_LSDB_HPP
2#define NLSR_LSDB_HPP
3
4#include "nlsr_lsa.hpp"
5
6using namespace std;
7
8class nlsr;
9
10class Lsdb{
11public:
12 Lsdb()
13 {
14 }
15
16
17 bool doesLsaExist(string key, int lsType);
18 // function related to Name LSDB
akmhoque3c6bd922014-02-01 17:10:17 -060019 bool buildAndInstallOwnNameLsa(nlsr& pnlsr);
akmhoquebd7c8e62014-02-01 14:57:40 -060020 NameLsa& getNameLsa(string key);
21 bool installNameLsa(NameLsa &nlsa);
22 bool removeNameLsa(string& key);
23 void printNameLsdb(); //debugging
24
25 //function related to Cor LSDB
akmhoque3c6bd922014-02-01 17:10:17 -060026 bool buildAndInstallOwnCorLsa(nlsr& pnlsr);
akmhoquebd7c8e62014-02-01 14:57:40 -060027 CorLsa& getCorLsa(string key);
akmhoque3c6bd922014-02-01 17:10:17 -060028 bool installCorLsa(CorLsa &clsa);
akmhoquebd7c8e62014-02-01 14:57:40 -060029 bool removeCorLsa(string& key);
30 void printCorLsdb(); //debugging
akmhoquecd552472014-02-01 21:22:16 -060031
32 //function related to Cor LSDB
33 void scheduledAdjLsaBuild(nlsr& pnlsr);
34 bool buildAndInstallOwnAdjLsa(nlsr& pnlsr);
35 bool removeAdjLsa(string& key);
akmhoquedfa4a5b2014-02-03 20:12:29 -060036 bool installAdjLsa(nlsr& pnlsr, AdjLsa &alsa);
akmhoquecd552472014-02-01 21:22:16 -060037 AdjLsa& getAdjLsa(string key);
38 void printAdjLsdb();
akmhoquebd7c8e62014-02-01 14:57:40 -060039
40private:
41 bool addNameLsa(NameLsa &nlsa);
akmhoquebd7c8e62014-02-01 14:57:40 -060042 bool doesNameLsaExist(string key);
akmhoquecd552472014-02-01 21:22:16 -060043
44 bool addCorLsa(CorLsa& clsa);
akmhoquebd7c8e62014-02-01 14:57:40 -060045 bool doesCorLsaExist(string key);
46
akmhoquecd552472014-02-01 21:22:16 -060047 bool addAdjLsa(AdjLsa &alsa);
48 bool doesAdjLsaExist(string key);
49
50
akmhoquebd7c8e62014-02-01 14:57:40 -060051private:
52 std::list<NameLsa> nameLsdb;
53 std::list<AdjLsa> adjLsdb;
54 std::list<CorLsa> corLsdb;
55
56};
57
58#endif