nlsr::Lsa Class Referenceabstract

Data abstraction for Lsa Lsa := LSA-TYPE TLV-LENGTH Name SequenceNumber ExpirationTimePoint. More...

#include <lsa.hpp>

+ Inheritance diagram for nlsr::Lsa:
+ Collaboration diagram for nlsr::Lsa:

Classes

class  Error
 

Public Types

enum class  Type {
  ADJACENCY ,
  COORDINATE ,
  NAME ,
  BASE
}
 

Public Member Functions

virtual ~Lsa ()=default
 
const ndn::time::system_clock::TimePoint & getExpirationTimePoint () const
 
ndn::scheduler::EventId getExpiringEventId () const
 
const ndn::Name & getOriginRouter () const
 
ndn::Name getOriginRouterCopy () const
 
uint64_t getSeqNo () const
 
virtual Type getType () const =0
 
void setExpirationTimePoint (const ndn::time::system_clock::TimePoint &lt)
 
void setExpiringEventId (ndn::scheduler::EventId eid)
 
void setSeqNo (uint64_t seqNo)
 
virtual std::string toString () const
 
virtual const ndn::Block & wireEncode () const =0
 

Protected Member Functions

 Lsa ()=default
 
 Lsa (const ndn::Name &originRouter, uint64_t seqNo, ndn::time::system_clock::TimePoint expirationTimePoint)
 
void wireDecode (const ndn::Block &wire)
 
template<ndn::encoding::Tag TAG>
size_t wireEncode (ndn::EncodingImpl< TAG > &block) const
 

Protected Attributes

ndn::time::system_clock::TimePoint m_expirationTimePoint
 
ndn::scheduler::EventId m_expiringEventId
 
ndn::Name m_originRouter
 
uint64_t m_seqNo = 0
 
ndn::Block m_wire
 

Detailed Description

Data abstraction for Lsa Lsa := LSA-TYPE TLV-LENGTH Name SequenceNumber ExpirationTimePoint.

Definition at line 41 of file lsa.hpp.

Member Enumeration Documentation

◆ Type

enum nlsr::Lsa::Type
strong
Enumerator
ADJACENCY 
COORDINATE 
NAME 
BASE 

Definition at line 50 of file lsa.hpp.

Constructor & Destructor Documentation

◆ Lsa() [1/2]

nlsr::Lsa::Lsa ( const ndn::Name &  originRouter,
uint64_t  seqNo,
ndn::time::system_clock::TimePoint  expirationTimePoint 
)
protected

Definition at line 30 of file lsa.cpp.

◆ Lsa() [2/2]

nlsr::Lsa::Lsa ( )
protecteddefault

◆ ~Lsa()

virtual nlsr::Lsa::~Lsa ( )
virtualdefault

Member Function Documentation

◆ getExpirationTimePoint()

const ndn::time::system_clock::TimePoint& nlsr::Lsa::getExpirationTimePoint ( ) const
inline

Definition at line 96 of file lsa.hpp.

◆ getExpiringEventId()

ndn::scheduler::EventId nlsr::Lsa::getExpiringEventId ( ) const
inline

Definition at line 115 of file lsa.hpp.

◆ getOriginRouter()

const ndn::Name& nlsr::Lsa::getOriginRouter ( ) const
inline

Definition at line 84 of file lsa.hpp.

◆ getOriginRouterCopy()

ndn::Name nlsr::Lsa::getOriginRouterCopy ( ) const
inline

Definition at line 90 of file lsa.hpp.

◆ getSeqNo()

uint64_t nlsr::Lsa::getSeqNo ( ) const
inline

Definition at line 78 of file lsa.hpp.

◆ getType()

virtual Type nlsr::Lsa::getType ( ) const
pure virtual

◆ setExpirationTimePoint()

void nlsr::Lsa::setExpirationTimePoint ( const ndn::time::system_clock::TimePoint &  lt)
inline

Definition at line 102 of file lsa.hpp.

◆ setExpiringEventId()

void nlsr::Lsa::setExpiringEventId ( ndn::scheduler::EventId  eid)
inline

Definition at line 109 of file lsa.hpp.

◆ setSeqNo()

void nlsr::Lsa::setSeqNo ( uint64_t  seqNo)
inline

Definition at line 71 of file lsa.hpp.

◆ toString()

std::string nlsr::Lsa::toString ( ) const
virtual

Get data common to all LSA types.

Reimplemented in nlsr::NameLsa, nlsr::CoordinateLsa, and nlsr::AdjLsa.

Definition at line 141 of file lsa.cpp.

◆ wireDecode()

void nlsr::Lsa::wireDecode ( const ndn::Block &  wire)
protected

Definition at line 62 of file lsa.cpp.

◆ wireEncode() [1/2]

virtual const ndn::Block& nlsr::Lsa::wireEncode ( ) const
pure virtual

◆ wireEncode() [2/2]

template<ndn::encoding::Tag TAG>
size_t nlsr::Lsa::wireEncode ( ndn::EncodingImpl< TAG > &  block) const
protected

Definition at line 40 of file lsa.cpp.

Member Data Documentation

◆ m_expirationTimePoint

ndn::time::system_clock::TimePoint nlsr::Lsa::m_expirationTimePoint
protected

Definition at line 139 of file lsa.hpp.

◆ m_expiringEventId

ndn::scheduler::EventId nlsr::Lsa::m_expiringEventId
protected

Definition at line 140 of file lsa.hpp.

◆ m_originRouter

ndn::Name nlsr::Lsa::m_originRouter
protected

Definition at line 137 of file lsa.hpp.

◆ m_seqNo

uint64_t nlsr::Lsa::m_seqNo = 0
protected

Definition at line 138 of file lsa.hpp.

◆ m_wire

ndn::Block nlsr::Lsa::m_wire
mutableprotected

Definition at line 142 of file lsa.hpp.