71 lines
1.7 KiB
C++
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;
|
|
}
|
|
|
|
}
|