Files
eden-sim/contrib/tsn/model/frer-sequence-generation-function.cc

71 lines
1.7 KiB
C++

#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<Object>()
.SetGroupName("tsn")
.AddConstructor<SequenceGenerationFunction>()
.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<uint32_t> 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;
}
}