blob: 486100987287389e4b5c58e69447fb3f0a0feb30 [file] [log] [blame]
#ifndef NLSR_SM_HPP
#define NLSR_SM_HPP
#include<list>
#include<string>
#include <ndn-cpp-dev/face.hpp>
namespace nlsr
{
using namespace std;
class SequencingManager
{
public:
SequencingManager()
: m_nameLsaSeq(0)
, m_adjLsaSeq(0)
, m_corLsaSeq(0)
, m_combinedSeqNo(0)
, m_seqFileNameWithPath()
{
}
SequencingManager(uint64_t seqNo)
{
splittSequenceNo(seqNo);
}
SequencingManager(uint64_t nlsn, uint64_t alsn, uint64_t clsn)
{
m_nameLsaSeq=nlsn;
m_adjLsaSeq=alsn;
m_corLsaSeq=clsn;
combineSequenceNo();
}
uint64_t getNameLsaSeq() const
{
return m_nameLsaSeq;
}
void setNameLsaSeq(uint64_t nlsn)
{
m_nameLsaSeq=nlsn;
combineSequenceNo();
}
uint64_t getAdjLsaSeq() const
{
return m_adjLsaSeq;
}
void setAdjLsaSeq(uint64_t alsn)
{
m_adjLsaSeq=alsn;
combineSequenceNo();
}
uint64_t getCorLsaSeq() const
{
return m_corLsaSeq;
}
void setCorLsaSeq(uint64_t clsn)
{
m_corLsaSeq=clsn;
combineSequenceNo();
}
uint64_t getCombinedSeqNo() const
{
return m_combinedSeqNo;
}
void writeSeqNoToFile();
void initiateSeqNoFromFile();
void setSeqFileName(string filePath);
string getUserHomeDirectory();
private:
void splittSequenceNo(uint64_t seqNo);
void combineSequenceNo();
private:
uint64_t m_nameLsaSeq;
uint64_t m_adjLsaSeq;
uint64_t m_corLsaSeq;
uint64_t m_combinedSeqNo;
string m_seqFileNameWithPath;
};
ostream& operator <<(ostream& os, const SequencingManager& sm);
}//namespace nlsr
#endif