ns3::SatInputFileStreamTimeDoubleContainer Class Reference

Class for input file stream container for storing double values. More...

#include "satellite-input-fstream-time-double-container.h"

+ Inheritance diagram for ns3::SatInputFileStreamTimeDoubleContainer:
+ Collaboration diagram for ns3::SatInputFileStreamTimeDoubleContainer:

Public Member Functions

 SatInputFileStreamTimeDoubleContainer ()
 Constructor. More...
 
 SatInputFileStreamTimeDoubleContainer (std::string filename, std::ios::openmode filemode, uint32_t valuesInRow)
 Constructor. More...
 
 ~SatInputFileStreamTimeDoubleContainer ()
 Destructor. More...
 
void DoDispose ()
 Do needed dispose actions. More...
 
std::vector< double > InterpolateBetweenClosestTimeSamples ()
 Function for locating time samples enclosing the current time and a linear interpolation between these samples. More...
 
std::vector< double > ProceedToNextClosestTimeSample ()
 Function for locating the next closest time sample and returning the values related to it. More...
 
void UpdateContainer (std::string filename, std::ios::openmode filemode, uint32_t valuesInRow)
 Function for updating the container. More...
 

Static Public Member Functions

static TypeId GetTypeId (void)
 NS-3 function for type id. More...
 

Private Member Functions

void CheckContainerSanity ()
 Check container time sample sanity. More...
 
void ClearContainer ()
 Function for clearing the container. More...
 
bool FindNextClosest (uint32_t lastValidPosition, double timeShiftValue, double comparisonTimeValue)
 Function for locating the next closest value index. More...
 
std::vector< double > ReadRow ()
 Function for reading a row from file. More...
 
void Reset ()
 Function for resetting the variables. More...
 
void ResetStream ()
 Function for resetting the stream. More...
 

Private Attributes

std::vector< std::vector< double > > m_container
 Container for value rows. More...
 
std::ios::openmode m_fileMode
 File mode. More...
 
std::string m_fileName
 File name. More...
 
std::ifstream * m_inputFileStream
 Pointer to input file stream. More...
 
SatInputFileStreamWrapperm_inputFileStreamWrapper
 Pointer to input file stream wrapper. More...
 
uint32_t m_lastValidPosition
 Last valid position. More...
 
uint32_t m_numOfPasses
 Number for how many times the available samples have been looped over. More...
 
uint32_t m_timeColumn
 Index for column which contains time information. More...
 
double m_timeShiftValue
 Shift value for sample time. More...
 
uint32_t m_valuesInRow
 Number of values in a row. More...
 

Detailed Description

Class for input file stream container for storing double values.

The class implements reading the values from a file, storing the values and iterating the stored values.

Row format is [time, value1, ..., value n].

Definition at line 42 of file satellite-input-fstream-time-double-container.h.

Constructor & Destructor Documentation

◆ SatInputFileStreamTimeDoubleContainer() [1/2]

ns3::SatInputFileStreamTimeDoubleContainer::SatInputFileStreamTimeDoubleContainer ( std::string  filename,
std::ios::openmode  filemode,
uint32_t  valuesInRow 
)

Constructor.

Parameters
filenamefile name
filemodefile mode
valuesInRownumber of values in a row

Definition at line 41 of file satellite-input-fstream-time-double-container.cc.

References m_fileMode, m_fileName, m_valuesInRow, and UpdateContainer().

+ Here is the call graph for this function:

◆ SatInputFileStreamTimeDoubleContainer() [2/2]

ns3::SatInputFileStreamTimeDoubleContainer::SatInputFileStreamTimeDoubleContainer ( )

Constructor.

Definition at line 61 of file satellite-input-fstream-time-double-container.cc.

◆ ~SatInputFileStreamTimeDoubleContainer()

ns3::SatInputFileStreamTimeDoubleContainer::~SatInputFileStreamTimeDoubleContainer ( )

Destructor.

Definition at line 78 of file satellite-input-fstream-time-double-container.cc.

References Reset().

+ Here is the call graph for this function:

Member Function Documentation

◆ CheckContainerSanity()

void ns3::SatInputFileStreamTimeDoubleContainer::CheckContainerSanity ( )
private

Check container time sample sanity.

check time sample sanity

Definition at line 148 of file satellite-input-fstream-time-double-container.cc.

References m_container, and m_timeColumn.

Referenced by UpdateContainer().

+ Here is the caller graph for this function:

◆ ClearContainer()

void ns3::SatInputFileStreamTimeDoubleContainer::ClearContainer ( )
private

Function for clearing the container.

Definition at line 346 of file satellite-input-fstream-time-double-container.cc.

References m_container, m_lastValidPosition, m_numOfPasses, m_timeShiftValue, and m_valuesInRow.

Referenced by Reset(), and UpdateContainer().

+ Here is the caller graph for this function:

◆ DoDispose()

void ns3::SatInputFileStreamTimeDoubleContainer::DoDispose ( void  )

Do needed dispose actions.

Definition at line 86 of file satellite-input-fstream-time-double-container.cc.

References Reset().

+ Here is the call graph for this function:

◆ FindNextClosest()

bool ns3::SatInputFileStreamTimeDoubleContainer::FindNextClosest ( uint32_t  lastValidPosition,
double  timeShiftValue,
double  comparisonTimeValue 
)
private

Function for locating the next closest value index.

This locator loops the samples if the container does not have enough samples. Next closest index value is saved to a separate member variable.

Parameters
lastValidPositionposition of last matching value
shiftValuevalue to shift the time if needed
comparisonValuevalue which next closest match to find
Returns
was next time sample found

Definition at line 259 of file satellite-input-fstream-time-double-container.cc.

References m_container, m_lastValidPosition, m_numOfPasses, m_timeColumn, m_timeShiftValue, and m_valuesInRow.

Referenced by InterpolateBetweenClosestTimeSamples(), and ProceedToNextClosestTimeSample().

+ Here is the caller graph for this function:

◆ GetTypeId()

TypeId ns3::SatInputFileStreamTimeDoubleContainer::GetTypeId ( void  )
static

NS-3 function for type id.

Returns
type id

Definition at line 33 of file satellite-input-fstream-time-double-container.cc.

◆ InterpolateBetweenClosestTimeSamples()

std::vector< double > ns3::SatInputFileStreamTimeDoubleContainer::InterpolateBetweenClosestTimeSamples ( )

Function for locating time samples enclosing the current time and a linear interpolation between these samples.

Returns
linear interpolation of the current time value between the two closest time samples

Definition at line 208 of file satellite-input-fstream-time-double-container.cc.

References FindNextClosest(), m_container, m_lastValidPosition, m_timeColumn, and m_timeShiftValue.

+ Here is the call graph for this function:

◆ ProceedToNextClosestTimeSample()

std::vector< double > ns3::SatInputFileStreamTimeDoubleContainer::ProceedToNextClosestTimeSample ( )

Function for locating the next closest time sample and returning the values related to it.

Returns
matching values

Definition at line 182 of file satellite-input-fstream-time-double-container.cc.

References FindNextClosest(), m_container, m_fileName, m_lastValidPosition, m_numOfPasses, m_timeColumn, and m_timeShiftValue.

+ Here is the call graph for this function:

◆ ReadRow()

std::vector< double > ns3::SatInputFileStreamTimeDoubleContainer::ReadRow ( )
private

Function for reading a row from file.

Returns
the row

Definition at line 132 of file satellite-input-fstream-time-double-container.cc.

References m_inputFileStream, and m_valuesInRow.

Referenced by UpdateContainer().

+ Here is the caller graph for this function:

◆ Reset()

void ns3::SatInputFileStreamTimeDoubleContainer::Reset ( void  )
private

Function for resetting the variables.

Definition at line 324 of file satellite-input-fstream-time-double-container.cc.

References ClearContainer(), and ResetStream().

Referenced by ~SatInputFileStreamTimeDoubleContainer(), and DoDispose().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ResetStream()

void ns3::SatInputFileStreamTimeDoubleContainer::ResetStream ( )
private

Function for resetting the stream.

Definition at line 333 of file satellite-input-fstream-time-double-container.cc.

References m_inputFileStream, and m_inputFileStreamWrapper.

Referenced by Reset(), and UpdateContainer().

+ Here is the caller graph for this function:

◆ UpdateContainer()

void ns3::SatInputFileStreamTimeDoubleContainer::UpdateContainer ( std::string  filename,
std::ios::openmode  filemode,
uint32_t  valuesInRow 
)

Function for updating the container.

Parameters
filenamefile name
filemodefile mode
valuesInRownumber of values in a row

Definition at line 95 of file satellite-input-fstream-time-double-container.cc.

References CheckContainerSanity(), ClearContainer(), ns3::SatInputFileStreamWrapper::GetStream(), m_container, m_fileMode, m_fileName, m_inputFileStream, m_inputFileStreamWrapper, m_valuesInRow, ReadRow(), and ResetStream().

Referenced by SatInputFileStreamTimeDoubleContainer().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_container

std::vector<std::vector<double> > ns3::SatInputFileStreamTimeDoubleContainer::m_container
private

◆ m_fileMode

std::ios::openmode ns3::SatInputFileStreamTimeDoubleContainer::m_fileMode
private

◆ m_fileName

std::string ns3::SatInputFileStreamTimeDoubleContainer::m_fileName
private

◆ m_inputFileStream

std::ifstream* ns3::SatInputFileStreamTimeDoubleContainer::m_inputFileStream
private

Pointer to input file stream.

Definition at line 143 of file satellite-input-fstream-time-double-container.h.

Referenced by ReadRow(), ResetStream(), and UpdateContainer().

◆ m_inputFileStreamWrapper

SatInputFileStreamWrapper* ns3::SatInputFileStreamTimeDoubleContainer::m_inputFileStreamWrapper
private

Pointer to input file stream wrapper.

Definition at line 138 of file satellite-input-fstream-time-double-container.h.

Referenced by ResetStream(), and UpdateContainer().

◆ m_lastValidPosition

uint32_t ns3::SatInputFileStreamTimeDoubleContainer::m_lastValidPosition
private

◆ m_numOfPasses

uint32_t ns3::SatInputFileStreamTimeDoubleContainer::m_numOfPasses
private

Number for how many times the available samples have been looped over.

Definition at line 173 of file satellite-input-fstream-time-double-container.h.

Referenced by ClearContainer(), FindNextClosest(), and ProceedToNextClosestTimeSample().

◆ m_timeColumn

uint32_t ns3::SatInputFileStreamTimeDoubleContainer::m_timeColumn
private

Index for column which contains time information.

Definition at line 183 of file satellite-input-fstream-time-double-container.h.

Referenced by CheckContainerSanity(), FindNextClosest(), InterpolateBetweenClosestTimeSamples(), and ProceedToNextClosestTimeSample().

◆ m_timeShiftValue

double ns3::SatInputFileStreamTimeDoubleContainer::m_timeShiftValue
private

◆ m_valuesInRow

uint32_t ns3::SatInputFileStreamTimeDoubleContainer::m_valuesInRow
private

The documentation for this class was generated from the following files: