nidas v1.2.3
Classes | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
nidas::core::SampleInputHeader Class Reference

#include <SampleInputHeader.h>

Classes

struct  headerField
 

Public Member Functions

 SampleInputHeader ()
 
 SampleInputHeader (const SampleInputHeader &)
 Copy constructor.
 
SampleInputHeaderoperator= (const SampleInputHeader &)
 Assignment operator.
 
 ~SampleInputHeader ()
 
void read (IOStream *iostream)
 Read IOStream until the SampleInputHeader has been fully read.
 
bool parse (IOStream *iostream)
 Parse the current contents of the IOStream for the SampleInputHeader.
 
int getLength () const
 Get length in bytes of the header.
 
std::string toString () const
 Render the header in string form.
 
size_t write (SampleOutput *output) const
 
size_t write (IOStream *iostream) const
 
void setArchiveVersion (const std::string &val)
 
const std::string & getArchiveVersion () const
 
void setSoftwareVersion (const std::string &val)
 
const std::string & getSoftwareVersion () const
 
void setProjectName (const std::string &val)
 
const std::string & getProjectName () const
 
void setSystemName (const std::string &val)
 
const std::string & getSystemName () const
 
void setConfigName (const std::string &val)
 
const std::string & getConfigName () const
 
void setConfigVersion (const std::string &val)
 
const std::string & getConfigVersion () const
 

Protected Member Functions

bool parseMagic (IOStream *iostream)
 
bool parseTag (IOStream *iostream)
 
bool parseValue (IOStream *iostream)
 

Private Types

enum  parseStage {
  PARSE_START , PARSE_MAGIC , PARSE_TAG , PARSE_VALUE ,
  PARSE_DONE
}
 

Private Member Functions

void setDummyString (const std::string &)
 
const std::string & getDummyString () const
 

Private Attributes

std::string _archiveVersion
 
std::string _softwareVersion
 
std::string _projectName
 
std::string _systemName
 
std::string _configName
 
std::string _configVersion
 
std::string _dummy
 
int _minMagicLen
 
int _imagic
 
int _endTag
 
int _tagMatch
 
int _size
 Size in bytes of the header.
 
char_buf
 
char_headPtr
 
enum nidas::core::SampleInputHeader::parseStage _stage
 

Static Private Attributes

static const struct headerField headers []
 
static const charmagicStrings []
 Strings that can occur as the magic value at the beginning of a sample file.
 
static const int _nmagic = (int)(sizeof(magicStrings) / sizeof(magicStrings[0]))
 
static const int _ntags = (int)(sizeof(headers)/sizeof(struct headerField))
 
static const int HEADER_BUF_LEN = 256
 

Member Enumeration Documentation

◆ parseStage

Enumerator
PARSE_START 
PARSE_MAGIC 
PARSE_TAG 
PARSE_VALUE 
PARSE_DONE 

Constructor & Destructor Documentation

◆ SampleInputHeader() [1/2]

SampleInputHeader::SampleInputHeader ( )

◆ SampleInputHeader() [2/2]

SampleInputHeader::SampleInputHeader ( const SampleInputHeader & x)

Copy constructor.

Should not be used when a header is being parsed.

References _buf, _headPtr, and HEADER_BUF_LEN.

◆ ~SampleInputHeader()

SampleInputHeader::~SampleInputHeader ( )

References _buf.

Member Function Documentation

◆ getArchiveVersion()

const std::string & nidas::core::SampleInputHeader::getArchiveVersion ( ) const
inline

◆ getConfigName()

const std::string & nidas::core::SampleInputHeader::getConfigName ( ) const
inline

◆ getConfigVersion()

const std::string & nidas::core::SampleInputHeader::getConfigVersion ( ) const
inline

◆ getDummyString()

const std::string & nidas::core::SampleInputHeader::getDummyString ( ) const
inlineprivate

References _dummy.

◆ getLength()

int nidas::core::SampleInputHeader::getLength ( ) const
inline

Get length in bytes of the header.

References _size.

Referenced by HeaderUtil::run().

◆ getProjectName()

const std::string & nidas::core::SampleInputHeader::getProjectName ( ) const
inline

◆ getSoftwareVersion()

const std::string & nidas::core::SampleInputHeader::getSoftwareVersion ( ) const
inline

◆ getSystemName()

const std::string & nidas::core::SampleInputHeader::getSystemName ( ) const
inline

◆ operator=()

SampleInputHeader & SampleInputHeader::operator= ( const SampleInputHeader & x)

Assignment operator.

Should not be used when a header is being parsed.

References _archiveVersion, _buf, _configName, _configVersion, _endTag, _headPtr, _imagic, _minMagicLen, _projectName, _size, _softwareVersion, _stage, _systemName, and _tagMatch.

◆ parse()

bool SampleInputHeader::parse ( IOStream * iostream)

Parse the current contents of the IOStream for the SampleInputHeader.

Returns
true: SampleInputHeader has been fully parsed. false: SampleInputHeader not completely parsed yet, another iostream->read() is necessary.
Exceptions
nidas::util::ParseException

References _size, _stage, PARSE_DONE, PARSE_MAGIC, PARSE_START, PARSE_TAG, PARSE_VALUE, parseMagic(), parseTag(), and parseValue().

Referenced by nidas::dynld::SampleInputStream::parseInputHeader(), and read().

◆ parseMagic()

bool SampleInputHeader::parseMagic ( IOStream * iostream)
protected

◆ parseTag()

bool SampleInputHeader::parseTag ( IOStream * iostream)
protected

◆ parseValue()

bool SampleInputHeader::parseValue ( IOStream * iostream)
protected

◆ read()

void SampleInputHeader::read ( IOStream * iostream)

Read IOStream until the SampleInputHeader has been fully read.

This will perform one or more iostream->read()s.

Exceptions
nidas::util::IOException

References parse().

Referenced by HeaderUtil::run().

◆ setArchiveVersion()

void nidas::core::SampleInputHeader::setArchiveVersion ( const std::string & val)
inline

◆ setConfigName()

void nidas::core::SampleInputHeader::setConfigName ( const std::string & val)
inline

◆ setConfigVersion()

void nidas::core::SampleInputHeader::setConfigVersion ( const std::string & val)
inline

◆ setDummyString()

void nidas::core::SampleInputHeader::setDummyString ( const std::string & )
inlineprivate

◆ setProjectName()

void nidas::core::SampleInputHeader::setProjectName ( const std::string & val)
inline

◆ setSoftwareVersion()

void nidas::core::SampleInputHeader::setSoftwareVersion ( const std::string & val)
inline

◆ setSystemName()

void nidas::core::SampleInputHeader::setSystemName ( const std::string & val)
inline

◆ toString()

string SampleInputHeader::toString ( ) const

Render the header in string form.

References _size, nidas::core::getSample(), headers, len, and magicStrings.

Referenced by HeaderUtil::printHeader(), HeaderUtil::run(), write(), and write().

◆ write() [1/2]

size_t SampleInputHeader::write ( IOStream * iostream) const

◆ write() [2/2]

size_t SampleInputHeader::write ( SampleOutput * output) const

Member Data Documentation

◆ _archiveVersion

std::string nidas::core::SampleInputHeader::_archiveVersion
private

◆ _buf

char* nidas::core::SampleInputHeader::_buf
private

◆ _configName

std::string nidas::core::SampleInputHeader::_configName
private

◆ _configVersion

std::string nidas::core::SampleInputHeader::_configVersion
private

◆ _dummy

std::string nidas::core::SampleInputHeader::_dummy
private

Referenced by getDummyString().

◆ _endTag

int nidas::core::SampleInputHeader::_endTag
private

◆ _headPtr

char* nidas::core::SampleInputHeader::_headPtr
private

◆ _imagic

int nidas::core::SampleInputHeader::_imagic
private

Referenced by operator=(), and parseMagic().

◆ _minMagicLen

int nidas::core::SampleInputHeader::_minMagicLen
private

◆ _nmagic

const int SampleInputHeader::_nmagic = (int)(sizeof(magicStrings) / sizeof(magicStrings[0]))
staticprivate

Referenced by parseMagic(), and SampleInputHeader().

◆ _ntags

const int SampleInputHeader::_ntags = (int)(sizeof(headers)/sizeof(struct headerField))
staticprivate

◆ _projectName

std::string nidas::core::SampleInputHeader::_projectName
private

◆ _size

int nidas::core::SampleInputHeader::_size
private

Size in bytes of the header.

The value is saved, so that if we update one or more values, then we might be able to re-write the header without exceeding the original size.

Referenced by getLength(), operator=(), parse(), parseMagic(), parseTag(), parseValue(), and toString().

◆ _softwareVersion

std::string nidas::core::SampleInputHeader::_softwareVersion
private

◆ _stage

enum nidas::core::SampleInputHeader::parseStage nidas::core::SampleInputHeader::_stage
private

◆ _systemName

std::string nidas::core::SampleInputHeader::_systemName
private

◆ _tagMatch

int nidas::core::SampleInputHeader::_tagMatch
private

Referenced by operator=(), parseTag(), and parseValue().

◆ HEADER_BUF_LEN

const int SampleInputHeader::HEADER_BUF_LEN = 256
staticprivate

◆ headers

const SampleInputHeader::headerField SampleInputHeader::headers
staticprivate
Initial value:
= {
{ "archive version:",16, &SampleInputHeader::setArchiveVersion,
{ "software version:",17, &SampleInputHeader::setSoftwareVersion,
{ "project name:",13, &SampleInputHeader::setProjectName,
{ "system name:",12, &SampleInputHeader::setSystemName,
{ "config name:",12, &SampleInputHeader::setConfigName,
{ "config version:",15, &SampleInputHeader::setConfigVersion,
{ "site name:",10, &SampleInputHeader::setSystemName,
{ "observation period name:",24, &SampleInputHeader::setDummyString,
{ "xml version:",12, &SampleInputHeader::setDummyString,
{ "end header\n",11, 0, 0,false },
}
const std::string & getConfigName() const
Definition SampleInputHeader.h:109
void setSystemName(const std::string &val)
Definition SampleInputHeader.h:105
void setProjectName(const std::string &val)
Definition SampleInputHeader.h:102
const std::string & getDummyString() const
Definition SampleInputHeader.h:136
void setConfigName(const std::string &val)
Definition SampleInputHeader.h:108
void setDummyString(const std::string &)
Definition SampleInputHeader.h:134
const std::string & getConfigVersion() const
Definition SampleInputHeader.h:112
void setConfigVersion(const std::string &val)
Definition SampleInputHeader.h:111
const std::string & getProjectName() const
Definition SampleInputHeader.h:103
void setArchiveVersion(const std::string &val)
Definition SampleInputHeader.h:96
const std::string & getArchiveVersion() const
Definition SampleInputHeader.h:97
void setSoftwareVersion(const std::string &val)
Definition SampleInputHeader.h:99
const std::string & getSoftwareVersion() const
Definition SampleInputHeader.h:100
const std::string & getSystemName() const
Definition SampleInputHeader.h:106

Referenced by parseTag(), parseValue(), SampleInputHeader(), and toString().

◆ magicStrings

const char * SampleInputHeader::magicStrings
staticprivate
Initial value:
= {
"NIDAS (ncar.ucar.edu)\n",
"NCAR ADS3\n"
}

Strings that can occur as the magic value at the beginning of a sample file.

magicString[0] is the value written to new sample files. The other strings, magicString[1] etc, are historic values that may be found in existing sample files.

Referenced by parseMagic(), SampleInputHeader(), and toString().


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