WSF
Report Class Referenceabstract

#include <Report.hpp>

Inheritance diagram for Report:

Classes

struct  TagData

Public Types

enum class  AngleUnitType { cDEGREES , cRADIANS }
enum class  LengthUnitType { cFEET , cMETERS }
enum class  TrackNumericalType { cNUMERICAL , cJTIDS }
enum class  DelimiterType {
  cUNKNOWN , cCOMMA , cCOLUMN , cSEMICOLON ,
  cSPACE , cTAB
}
enum class  Type {
  cUNKNOWN , cCOMMUNICATION , cDETECTION , cDSV ,
  cENGAGEMENT , cTRAJECTORY , cECLIPSE
}

Public Member Functions

 Report ()=delete
 Report (const Type aReportType, const Options &aOptions)
virtual ~Report ()=default
bool PrintReport ()
void ProcessData (std::istream &aInStream)
virtual bool CreateRequiredData (std::string &aOutputDir)
virtual bool ProcessInputConfiguration (UtInput &aInput)
virtual void PrintReportHeader (std::ostream &aStream)
virtual bool Filter (std::vector< std::string > &aLine)
std::string PrintDelimiter () const
void SetDelimiter (const std::string &aTypeString)
void SetDateTime (const std::vector< std::string > &aDataStrVec)
double FormatAngle (double aAngle) const
UtTime FormatTime (double aSimTime) const

Static Public Member Functions

static void FormatNumberColumn (std::ostream &aStream, size_t aNumSpaces, int aNumDigits, int aInt)
static void FormatStringColumn (std::ostream &aStream, std::string &aString, int aNumSpaces)
static std::string GetTypeStr (Report::Type aReportType)
static Header::DataTag ParseHeaderTag (const std::string &aString, bool aExpectType=false)
static void Tokenize (const std::string &aStr, std::vector< std::string > &aTokens, const char aDelimiter=',')
static std::vector< std::string > Tokenize (const std::string &aStr, char aDelimiter)

Protected Member Functions

void PrepareExtension (std::string &aOutputDir)
virtual void PrintReport (std::istream &aInStream, std::ostream &aOutStream)=0
virtual void ProcessHeaders (std::istream &aStream)
Header ProcessHeaderLine (const std::string &aLine)
void SetLatLonFormat (int &aFormat)
std::string FormatDateTime (double aSimTime=0)
std::string FormatDateTime (int aYear, int aMonth, int aDay, int aHour, int aMinute, double aSecond)

Static Protected Member Functions

static std::string SubstituteOutputFileVariables (const std::string &aOutputFile, size_t aMC_Number, UtCalendar &aCalendar)
static std::vector< std::string > ExtractHeaders (std::istream &aStream)

Protected Attributes

Type mReportType
std::string mReportName
std::string mDataFile
std::string mOutputDir
size_t mStartMC
size_t mEndMC
UtCalendar mSimDateTime
DelimiterType mDelimiterType = DelimiterType::cCOMMA
double mStartTime = 0.0
std::string mStartTimeUnits = "seconds"
double mEndTime = std::numeric_limits<double>::max()
std::string mEndTimeUnits = "seconds"
size_t mCurrentMC = mStartMC
bool mUseMC = false
std::map< std::string, std::map< std::string, TagData > > mEventToTagData
std::vector< std::string > mEvents
std::vector< std::string > mHeader
bool mWriteHeader = true
std::iostream::pos_type mEndOfHeaders = 0
int mTimeFormat = UtTime::FmtS + 5 + UtTime::FmtShowPoint + UtTime::FmtNoSuffix
int mLatLonFormat = UtAngle::FmtDMS + 2
AngleUnitType mAngleUnits = AngleUnitType::cDEGREES
int mInterval = 1
bool mSingleOutputFile = true
TrackNumericalType mTrackNum = TrackNumericalType::cNUMERICAL
LengthUnitType mLengthUnits = LengthUnitType::cMETERS
int mPrecision = 8
size_t mMaxPlatformNameSize = 8
size_t mMaxTimeSize = 15
std::vector< std::string > mRequiredData
std::queue< std::iostream::pos_type > mFilteredDataLoc

Member Enumeration Documentation

◆ AngleUnitType

enum class Report::AngleUnitType
strong
Enumerator
cDEGREES 
cRADIANS 

◆ DelimiterType

enum class Report::DelimiterType
strong
Enumerator
cUNKNOWN 
cCOMMA 
cCOLUMN 
cSEMICOLON 
cSPACE 
cTAB 

◆ LengthUnitType

enum class Report::LengthUnitType
strong
Enumerator
cFEET 
cMETERS 

◆ TrackNumericalType

enum class Report::TrackNumericalType
strong
Enumerator
cNUMERICAL 
cJTIDS 

◆ Type

enum class Report::Type
strong
Enumerator
cUNKNOWN 
cCOMMUNICATION 
cDETECTION 
cDSV 
cENGAGEMENT 
cTRAJECTORY 
cECLIPSE 

Constructor & Destructor Documentation

◆ Report() [1/2]

◆ Report() [2/2]

Report::Report ( const Type aReportType,
const Options & aOptions )

◆ ~Report()

virtual Report::~Report ( )
virtualdefault

References PrintReport(), and ProcessData().

Member Function Documentation

◆ CreateRequiredData()

virtual bool Report::CreateRequiredData ( std::string & aOutputDir)
inlinevirtual

◆ ExtractHeaders()

std::vector< std::string > Report::ExtractHeaders ( std::istream & aStream)
staticprotected

Referenced by ProcessHeaders().

◆ Filter()

virtual bool Report::Filter ( std::vector< std::string > & aLine)
inlinevirtual

◆ FormatAngle()

double Report::FormatAngle ( double aAngle) const

References cDEGREES, and mAngleUnits.

◆ FormatDateTime() [1/2]

std::string Report::FormatDateTime ( double aSimTime = 0)
protected

◆ FormatDateTime() [2/2]

std::string Report::FormatDateTime ( int aYear,
int aMonth,
int aDay,
int aHour,
int aMinute,
double aSecond )
protected

◆ FormatNumberColumn()

void Report::FormatNumberColumn ( std::ostream & aStream,
size_t aNumSpaces,
int aNumDigits,
int aInt )
static

◆ FormatStringColumn()

void Report::FormatStringColumn ( std::ostream & aStream,
std::string & aString,
int aNumSpaces )
static

◆ FormatTime()

UtTime Report::FormatTime ( double aSimTime) const

◆ GetTypeStr()

◆ ParseHeaderTag()

Header::DataTag Report::ParseHeaderTag ( const std::string & aString,
bool aExpectType = false )
static

◆ PrepareExtension()

void Report::PrepareExtension ( std::string & aOutputDir)
protected

Referenced by PrintReport().

◆ PrintDelimiter()

◆ PrintReport() [1/2]

◆ PrintReport() [2/2]

virtual void Report::PrintReport ( std::istream & aInStream,
std::ostream & aOutStream )
protectedpure virtual

◆ PrintReportHeader()

virtual void Report::PrintReportHeader ( std::ostream & aStream)
inlinevirtual

◆ ProcessData()

void Report::ProcessData ( std::istream & aInStream)

◆ ProcessHeaderLine()

Header Report::ProcessHeaderLine ( const std::string & aLine)
protected

References ParseEventTags().

Referenced by PrintReport(), and ProcessHeaders().

◆ ProcessHeaders()

void Report::ProcessHeaders ( std::istream & aStream)
protectedvirtual

◆ ProcessInputConfiguration()

◆ SetDateTime()

void Report::SetDateTime ( const std::vector< std::string > & aDataStrVec)

References mEventToTagData, and mSimDateTime.

Referenced by ProcessData().

◆ SetDelimiter()

void Report::SetDelimiter ( const std::string & aTypeString)

◆ SetLatLonFormat()

void Report::SetLatLonFormat ( int & aFormat)
inlineprotected

References mLatLonFormat.

◆ SubstituteOutputFileVariables()

std::string Report::SubstituteOutputFileVariables ( const std::string & aOutputFile,
size_t aMC_Number,
UtCalendar & aCalendar )
staticprotected

Performs substitution for naming output files d - Current Monte-Carlo Number D - Date M-D-Y T - Time HHMMSS

Referenced by PrintReport().

◆ Tokenize() [1/2]

std::vector< std::string > Report::Tokenize ( const std::string & aStr,
char aDelimiter )
static

References Tokenize().

◆ Tokenize() [2/2]

void Report::Tokenize ( const std::string & aStr,
std::vector< std::string > & aTokens,
const char aDelimiter = ',' )
static

Member Data Documentation

◆ mAngleUnits

AngleUnitType Report::mAngleUnits = AngleUnitType::cDEGREES
protected

◆ mCurrentMC

◆ mDataFile

std::string Report::mDataFile
protected

Referenced by PrintReport(), and Report().

◆ mDelimiterType

◆ mEndMC

size_t Report::mEndMC
protected

Referenced by PrintReport(), and Report().

◆ mEndOfHeaders

std::iostream::pos_type Report::mEndOfHeaders = 0
protected

Referenced by ProcessData(), and ProcessHeaders().

◆ mEndTime

◆ mEndTimeUnits

◆ mEvents

◆ mEventToTagData

◆ mFilteredDataLoc

std::queue<std::iostream::pos_type> Report::mFilteredDataLoc
protected

◆ mHeader

std::vector<std::string> Report::mHeader
protected

◆ mInterval

int Report::mInterval = 1
protected

◆ mLatLonFormat

int Report::mLatLonFormat = UtAngle::FmtDMS + 2
protected

◆ mLengthUnits

LengthUnitType Report::mLengthUnits = LengthUnitType::cMETERS
protected

◆ mMaxPlatformNameSize

◆ mMaxTimeSize

◆ mOutputDir

std::string Report::mOutputDir
protected

Referenced by PrintReport(), and Report().

◆ mPrecision

int Report::mPrecision = 8
protected

◆ mReportName

◆ mReportType

◆ mRequiredData

◆ mSimDateTime

UtCalendar Report::mSimDateTime
protected

Referenced by FormatDateTime(), and SetDateTime().

◆ mSingleOutputFile

bool Report::mSingleOutputFile = true
protected

◆ mStartMC

size_t Report::mStartMC
protected

Referenced by PrintReport(), and Report().

◆ mStartTime

◆ mStartTimeUnits

◆ mTimeFormat

int Report::mTimeFormat = UtTime::FmtS + 5 + UtTime::FmtShowPoint + UtTime::FmtNoSuffix
protected

◆ mTrackNum

◆ mUseMC

◆ mWriteHeader

bool Report::mWriteHeader = true
protected

The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved