#include "frer-sequence-generation-function.h" #include "ns3/log.h" #include "ns3/boolean.h" namespace ns3 { NS_LOG_COMPONENT_DEFINE("SequenceGenerationFunction"); NS_OBJECT_ENSURE_REGISTERED(SequenceGenerationFunction); TypeId SequenceGenerationFunction::GetTypeId() { static TypeId tid = TypeId("ns3::SequenceGenerationFunction") .SetParent() .SetGroupName("tsn") .AddConstructor() .AddAttribute("Direction", "A Boolean indicating whether the Sequence generation function is to be placed on the out-facing (True) or in-facing (False)", BooleanValue(false), MakeBooleanAccessor(&SequenceGenerationFunction::m_frerSeqGenDirection), MakeBooleanChecker()); return tid; } SequenceGenerationFunction::SequenceGenerationFunction() { NS_LOG_FUNCTION(this); } SequenceGenerationFunction::~SequenceGenerationFunction() { NS_LOG_FUNCTION(this); } void SequenceGenerationFunction::SetStreamHandle(std::vector frerSeqGenStreamList) { NS_LOG_FUNCTION(this); m_frerSeqGenStreamList = frerSeqGenStreamList; } bool SequenceGenerationFunction::IsApplicable(uint32_t streamHandle) { NS_LOG_FUNCTION(this); for (uint32_t i = 0; i < m_frerSeqGenStreamList.size(); i++) { if(m_frerSeqGenStreamList[i]==streamHandle) { return true; } } return false; } uint16_t SequenceGenerationFunction::GetSequenceNumber() { NS_LOG_FUNCTION(this); uint16_t genSeqNum = m_GenSeqNum; m_GenSeqNum++; return genSeqNum; } }