nidas  v1.2-1520
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. More...
 
SampleInputHeaderoperator= (const SampleInputHeader &)
 Assignment operator. More...
 
 ~SampleInputHeader ()
 
void read (IOStream *iostream) throw (nidas::util::IOException)
 Read IOStream until the SampleInputHeader has been fully read. More...
 
bool parse (IOStream *iostream) throw (nidas::util::ParseException)
 Parse the current contents of the IOStream for the SampleInputHeader. More...
 
int getLength () const
 Get length in bytes of the header. More...
 
std::string toString () const
 Render the header in string form. More...
 
size_t write (SampleOutput *output) const throw (nidas::util::IOException)
 
size_t write (IOStream *iostream) const throw (nidas::util::IOException)
 
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) throw (nidas::util::ParseException)
 
bool parseTag (IOStream *iostream) throw (nidas::util::ParseException)
 
bool parseValue (IOStream *iostream) throw (nidas::util::ParseException)
 

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. More...
 
char * _buf
 
char * _headPtr
 
enum
nidas::core::SampleInputHeader::parseStage 
_stage
 

Static Private Attributes

static struct headerField headers []
 
static const char * magicStrings []
 Strings that can occur as the magic value at the beginning of a sample file. More...
 
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

Enumerator
PARSE_START 
PARSE_MAGIC 
PARSE_TAG 
PARSE_VALUE 
PARSE_DONE 

Constructor & Destructor Documentation

SampleInputHeader::SampleInputHeader ( )
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 ( )

References _buf.

Member Function Documentation

const std::string& nidas::core::SampleInputHeader::getArchiveVersion ( ) const
inline
const std::string& nidas::core::SampleInputHeader::getConfigName ( ) const
inline
const std::string& nidas::core::SampleInputHeader::getConfigVersion ( ) const
inline
const std::string& nidas::core::SampleInputHeader::getDummyString ( ) const
inlineprivate

References _dummy.

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

Get length in bytes of the header.

References _size.

Referenced by HeaderUtil::run().

const std::string& nidas::core::SampleInputHeader::getProjectName ( ) const
inline
const std::string& nidas::core::SampleInputHeader::getSoftwareVersion ( ) const
inline
const std::string& nidas::core::SampleInputHeader::getSystemName ( ) const
inline
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.

bool SampleInputHeader::parse ( IOStream iostream)
throw (nidas::util::ParseException
)

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.

Referenced by nidas::dynld::SampleInputStream::parseInputHeader().

bool SampleInputHeader::parseMagic ( IOStream iostream)
throw (nidas::util::ParseException
)
protected

References len.

bool SampleInputHeader::parseTag ( IOStream iostream)
throw (nidas::util::ParseException
)
protected

References len.

bool SampleInputHeader::parseValue ( IOStream iostream)
throw (nidas::util::ParseException
)
protected
void SampleInputHeader::read ( IOStream iostream)
throw (nidas::util::IOException
)

Read IOStream until the SampleInputHeader has been fully read.

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

References nidas::util::Exception::what().

Referenced by HeaderUtil::run().

void nidas::core::SampleInputHeader::setArchiveVersion ( const std::string &  val)
inline
void nidas::core::SampleInputHeader::setConfigName ( const std::string &  val)
inline
void nidas::core::SampleInputHeader::setConfigVersion ( const std::string &  val)
inline
void nidas::core::SampleInputHeader::setDummyString ( const std::string &  )
inlineprivate
void nidas::core::SampleInputHeader::setProjectName ( const std::string &  val)
inline
void nidas::core::SampleInputHeader::setSoftwareVersion ( const std::string &  val)
inline
void nidas::core::SampleInputHeader::setSystemName ( const std::string &  val)
inline
string SampleInputHeader::toString ( ) const
size_t SampleInputHeader::write ( SampleOutput output) const
throw (nidas::util::IOException
)
size_t SampleInputHeader::write ( IOStream iostream) const
throw (nidas::util::IOException
)

Member Data Documentation

std::string nidas::core::SampleInputHeader::_archiveVersion
private
char* nidas::core::SampleInputHeader::_buf
private
std::string nidas::core::SampleInputHeader::_configName
private
std::string nidas::core::SampleInputHeader::_configVersion
private
std::string nidas::core::SampleInputHeader::_dummy
private

Referenced by getDummyString().

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

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

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

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

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

Referenced by operator=().

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

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

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

Referenced by SampleInputHeader().

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

Referenced by SampleInputHeader().

std::string nidas::core::SampleInputHeader::_projectName
private
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=(), and toString().

std::string nidas::core::SampleInputHeader::_softwareVersion
private
enum nidas::core::SampleInputHeader::parseStage nidas::core::SampleInputHeader::_stage
private

Referenced by operator=().

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

Referenced by operator=().

const int SampleInputHeader::HEADER_BUF_LEN = 256
staticprivate

Referenced by SampleInputHeader().

const SampleInputHeader::headerField SampleInputHeader::headers
staticprivate
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 SampleInputHeader(), and toString().


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