Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader > Class Template Reference

Detailed Description

template<class FileStream, class FileData, class FileHeader>
class gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >

This is just like FileFilterFrame but it can also handle header data. The header data is stored in an internal list that can be accessed with the *Header() methods below. Certain classes (like RINEX Obs and Met) have filter functions that can be used with touch() to combine header data from various files. The merge utilities in wonky use this ability, and other file types with header data can benefit from using this class's ability to store and write header data - see the RINEX and FIC GFW classes for more examples.

When initializing, this uses the FileFilterFrame::init() to read the FileData into the filter, then does a second pass with its own init() function to read the headers from those files. This is a little inefficient, but the goal of these classes was never efficiency.

Definition at line 74 of file FileFilterFrameWithHeader.hpp.

#include <FileFilterFrameWithHeader.hpp>

Inheritance diagram for gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >:
Inheritance graph
[legend]

Public Member Functions

FileHeader & backHeader ()
 
const FileHeader & backHeader () const
 
std::list< FileHeader >::iterator beginHeader ()
 
std::list< FileHeader >::const_iterator beginHeader () const
 
bool emptyHeader () const
 
std::list< FileHeader >::iterator endHeader ()
 
std::list< FileHeader >::const_iterator endHeader () const
 
 FileFilterFrameWithHeader (const FileSpec &spec, const gnsstk::CommonTime &start=gnsstk::CommonTime::BEGINNING_OF_TIME, const gnsstk::CommonTime &end=gnsstk::CommonTime::END_OF_TIME, const FileSpecFind::Filter &filter=FileSpecFind::Filter())
 
 FileFilterFrameWithHeader (const gnsstk::CommonTime &start=gnsstk::CommonTime::BEGINNING_OF_TIME, const gnsstk::CommonTime &end=gnsstk::CommonTime::END_OF_TIME)
 
 FileFilterFrameWithHeader (const std::string &filename, const gnsstk::CommonTime &start=gnsstk::CommonTime::BEGINNING_OF_TIME, const gnsstk::CommonTime &end=gnsstk::CommonTime::END_OF_TIME)
 
 FileFilterFrameWithHeader (const std::vector< std::string > &fileList, const gnsstk::CommonTime &start=gnsstk::CommonTime::BEGINNING_OF_TIME, const gnsstk::CommonTime &end=gnsstk::CommonTime::END_OF_TIME)
 
FileHeader & frontHeader ()
 
const FileHeader & frontHeader () const
 
std::list< FileHeader >::size_type getHeaderCount (void) const
 Returns the number of data items in the header list. More...
 
std::list< FileHeader > & getHeaderData (void)
 Returns the contents of the header data list. More...
 
std::list< FileHeader > getHeaderData (void) const
 Returns the contents of the header data list, const. More...
 
template<class BinaryPredicate >
std::list< FileData > halfDiff (const FileFilterFrameWithHeader< FileStream, FileData, FileHeader > &r, BinaryPredicate p, int precision) const
 Returns a list of the data in *this that isn't in r. More...
 
FileFilterFrameWithHeadernewSource (const FileSpec &filespec, const gnsstk::CommonTime &start=gnsstk::CommonTime::BEGINNING_OF_TIME, const gnsstk::CommonTime &end=gnsstk::CommonTime::END_OF_TIME, const FileSpecFind::Filter &filter=FileSpecFind::Filter())
 
FileFilterFrameWithHeadernewSource (const std::string &filename, const gnsstk::CommonTime &start=gnsstk::CommonTime::BEGINNING_OF_TIME, const gnsstk::CommonTime &end=gnsstk::CommonTime::END_OF_TIME)
 
FileFilterFrameWithHeadernewSource (const std::vector< std::string > &fileList, const gnsstk::CommonTime &start=gnsstk::CommonTime::BEGINNING_OF_TIME, const gnsstk::CommonTime &end=gnsstk::CommonTime::END_OF_TIME)
 
std::list< FileHeader >::size_type sizeHeader ()
 
template<class Operation >
FileFilterFrameWithHeadertouchHeader (Operation &op)
 
bool writeFile (const std::string &outputFile, const FileHeader &fh) const
 
virtual ~FileFilterFrameWithHeader ()
 
- Public Member Functions inherited from gnsstk::FileFilterFrame< FileStream, FileData >
 FileFilterFrame (const FileSpec &spec, const gnsstk::CommonTime &start=gnsstk::CommonTime::BEGINNING_OF_TIME, const gnsstk::CommonTime &end=gnsstk::CommonTime::END_OF_TIME, const FileSpecFind::Filter &filter=FileSpecFind::Filter())
 
 FileFilterFrame (const gnsstk::CommonTime &start=gnsstk::CommonTime::BEGINNING_OF_TIME, const gnsstk::CommonTime &end=gnsstk::CommonTime::END_OF_TIME)
 
 FileFilterFrame (const std::string &filename, const gnsstk::CommonTime &start=gnsstk::CommonTime::BEGINNING_OF_TIME, const gnsstk::CommonTime &end=gnsstk::CommonTime::END_OF_TIME)
 
 FileFilterFrame (const std::vector< std::string > &fileList, const gnsstk::CommonTime &start=gnsstk::CommonTime::BEGINNING_OF_TIME, const gnsstk::CommonTime &end=gnsstk::CommonTime::END_OF_TIME)
 
FileFilterFramenewSource (const FileSpec &filespec, const gnsstk::CommonTime &start=gnsstk::CommonTime::BEGINNING_OF_TIME, const gnsstk::CommonTime &end=gnsstk::CommonTime::END_OF_TIME, const FileSpecFind::Filter &filter=FileSpecFind::Filter())
 
FileFilterFramenewSource (const std::string &filename, const gnsstk::CommonTime &start=gnsstk::CommonTime::BEGINNING_OF_TIME, const gnsstk::CommonTime &end=gnsstk::CommonTime::END_OF_TIME)
 
FileFilterFramenewSource (const std::vector< std::string > &fileList, const gnsstk::CommonTime &start=gnsstk::CommonTime::BEGINNING_OF_TIME, const gnsstk::CommonTime &end=gnsstk::CommonTime::END_OF_TIME)
 
bool writeFile (const std::string &outputFile, const bool append=false) const
 
bool writeFile (FileStream &stream) const
 
virtual ~FileFilterFrame ()
 
- Public Member Functions inherited from gnsstk::FileFilter< FileData >
FileFilteraddData (const FileData &ffd)
 Adds the given data into the filter. More...
 
FileFilteraddData (const std::list< FileData > &datavec)
 Adds arbitrary data to the filter. More...
 
FileData & back ()
 
const FileData & back () const
 
std::list< FileData >::iterator begin ()
 
std::list< FileData >::const_iterator begin () const
 
void clear ()
 
template<class BinaryPredicate >
std::pair< std::list< FileData >, std::list< FileData > > diff (const FileFilter< FileData > &r, BinaryPredicate p) const
 
bool empty () const
 
std::list< FileData >::iterator end ()
 
std::list< FileData >::const_iterator end () const
 
 FileFilter (void)
 Default constructor. More...
 
template<class Predicate >
FileFilterfilter (Predicate up)
 
template<class Predicate >
std::list< FileData > findAll (Predicate p) const
 Returns a list of data matching the given unary predicate. More...
 
FileData & front ()
 
const FileData & front () const
 
std::list< FileData > & getData (void)
 Returns the contents of the data list. More...
 
std::list< FileData > getData (void) const
 Returns the contents of the data list, const. More...
 
std::list< FileData >::size_type getDataCount (void) const
 Returns the number of data items in the filter. More...
 
int getFiltered () const
 
FileFiltermerge (const FileFilter &right)
 Combines the data from the input filter to this object. More...
 
template<class Compare >
FileFiltermerge (const FileFilter &right, Compare bp)
 
std::list< FileData >::size_type size ()
 
template<class Compare >
FileFiltersort (Compare comp)
 
template<class Operation >
FileFiltertouch (const Operation &op)
 a const operator touch for the classes that need it. More...
 
template<class Operation >
FileFiltertouch (Operation &op)
 
template<class BinaryPredicate >
FileFilterunique (BinaryPredicate bp)
 
virtual ~FileFilter ()
 Destructor. More...
 

Protected Member Functions

void chl (const std::string &req)
 
void init (const FileSpecFind::Filter &filter=FileSpecFind::Filter())
 
- Protected Member Functions inherited from gnsstk::FileFilterFrame< FileStream, FileData >
void init (const FileSpecFind::Filter &filter=FileSpecFind::Filter())
 

Protected Attributes

std::list< FileHeader > headerList
 
- Protected Attributes inherited from gnsstk::FileFilterFrame< FileStream, FileData >
gnsstk::CommonTime endTime
 
FileSpec fs
 The file spec for this filter. More...
 
gnsstk::CommonTime startTime
 the start and end dates for the filter. More...
 
- Protected Attributes inherited from gnsstk::FileFilter< FileData >
lType dataVec
 
int filtered
 A count of the last number of items filtered. More...
 

Additional Inherited Members

- Protected Types inherited from gnsstk::FileFilter< FileData >
typedef std::list< FileData >::iterator lItrType
 
typedef std::list< FileData > lType
 List of file data to be filtered. More...
 

Constructor & Destructor Documentation

◆ FileFilterFrameWithHeader() [1/4]

template<class FileStream , class FileData , class FileHeader >
gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::FileFilterFrameWithHeader ( const gnsstk::CommonTime start = gnsstk::CommonTime::BEGINNING_OF_TIME,
const gnsstk::CommonTime end = gnsstk::CommonTime::END_OF_TIME 
)
inline

Default constructor

Exceptions
Exception

Definition at line 80 of file FileFilterFrameWithHeader.hpp.

◆ FileFilterFrameWithHeader() [2/4]

template<class FileStream , class FileData , class FileHeader >
gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::FileFilterFrameWithHeader ( const std::vector< std::string > &  fileList,
const gnsstk::CommonTime start = gnsstk::CommonTime::BEGINNING_OF_TIME,
const gnsstk::CommonTime end = gnsstk::CommonTime::END_OF_TIME 
)
inline

Takes a list of files to open in lieu of day times

Exceptions
Exception

Definition at line 89 of file FileFilterFrameWithHeader.hpp.

◆ FileFilterFrameWithHeader() [3/4]

template<class FileStream , class FileData , class FileHeader >
gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::FileFilterFrameWithHeader ( const std::string &  filename,
const gnsstk::CommonTime start = gnsstk::CommonTime::BEGINNING_OF_TIME,
const gnsstk::CommonTime end = gnsstk::CommonTime::END_OF_TIME 
)
inline

Takes a file name for a single file filter.

Exceptions
Exceptionwhen there's a file error.

Definition at line 107 of file FileFilterFrameWithHeader.hpp.

◆ FileFilterFrameWithHeader() [4/4]

template<class FileStream , class FileData , class FileHeader >
gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::FileFilterFrameWithHeader ( const FileSpec spec,
const gnsstk::CommonTime start = gnsstk::CommonTime::BEGINNING_OF_TIME,
const gnsstk::CommonTime end = gnsstk::CommonTime::END_OF_TIME,
const FileSpecFind::Filter filter = FileSpecFind::Filter() 
)
inline

Uses the FileSpec to retrieve files. Use filter like you would in FileSpecFind, to filter FOR stations, receivers, etc.

Exceptions
Exceptionwhen there's a file error.

Definition at line 118 of file FileFilterFrameWithHeader.hpp.

◆ ~FileFilterFrameWithHeader()

template<class FileStream , class FileData , class FileHeader >
virtual gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::~FileFilterFrameWithHeader ( )
inlinevirtual

Definition at line 182 of file FileFilterFrameWithHeader.hpp.

Member Function Documentation

◆ backHeader() [1/2]

template<class FileStream , class FileData , class FileHeader >
const FileHeader & gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::backHeader
Exceptions
InvalidRequest

Definition at line 416 of file FileFilterFrameWithHeader.hpp.

◆ backHeader() [2/2]

template<class FileStream , class FileData , class FileHeader >
const FileHeader& gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::backHeader ( ) const
Exceptions
InvalidRequest

◆ beginHeader() [1/2]

template<class FileStream , class FileData , class FileHeader >
std::list<FileHeader>::iterator gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::beginHeader ( )
Exceptions
InvalidRequest

◆ beginHeader() [2/2]

template<class FileStream , class FileData , class FileHeader >
std::list< FileHeader >::iterator gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::beginHeader
Exceptions
InvalidRequest

Definition at line 350 of file FileFilterFrameWithHeader.hpp.

◆ chl()

template<class FileStream , class FileData , class FileHeader >
void gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::chl ( const std::string &  req)
inlineprotected

Check to make sure headerList is empty

Exceptions
InvalidRequestif headerList is empty

Definition at line 310 of file FileFilterFrameWithHeader.hpp.

◆ emptyHeader()

template<class FileStream , class FileData , class FileHeader >
bool gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::emptyHeader ( ) const
inline

Definition at line 277 of file FileFilterFrameWithHeader.hpp.

◆ endHeader() [1/2]

template<class FileStream , class FileData , class FileHeader >
std::list<FileHeader>::iterator gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::endHeader ( )
Exceptions
InvalidRequest

◆ endHeader() [2/2]

template<class FileStream , class FileData , class FileHeader >
std::list< FileHeader >::iterator gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::endHeader
Exceptions
InvalidRequest

Definition at line 361 of file FileFilterFrameWithHeader.hpp.

◆ frontHeader() [1/2]

template<class FileStream , class FileData , class FileHeader >
const FileHeader & gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::frontHeader
Exceptions
InvalidRequest

Definition at line 393 of file FileFilterFrameWithHeader.hpp.

◆ frontHeader() [2/2]

template<class FileStream , class FileData , class FileHeader >
const FileHeader& gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::frontHeader ( ) const
Exceptions
InvalidRequest

◆ getHeaderCount()

template<class FileStream , class FileData , class FileHeader >
std::list<FileHeader>::size_type gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::getHeaderCount ( void  ) const
inline

Returns the number of data items in the header list.

Definition at line 254 of file FileFilterFrameWithHeader.hpp.

◆ getHeaderData() [1/2]

template<class FileStream , class FileData , class FileHeader >
std::list<FileHeader>& gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::getHeaderData ( void  )
inline

Returns the contents of the header data list.

Definition at line 248 of file FileFilterFrameWithHeader.hpp.

◆ getHeaderData() [2/2]

template<class FileStream , class FileData , class FileHeader >
std::list<FileHeader> gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::getHeaderData ( void  ) const
inline

Returns the contents of the header data list, const.

Definition at line 251 of file FileFilterFrameWithHeader.hpp.

◆ halfDiff()

template<class FileStream , class FileData , class FileHeader >
template<class BinaryPredicate >
std::list<FileData> gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::halfDiff ( const FileFilterFrameWithHeader< FileStream, FileData, FileHeader > &  r,
BinaryPredicate  p,
int  precision 
) const
inline

Returns a list of the data in *this that isn't in r.

Definition at line 198 of file FileFilterFrameWithHeader.hpp.

◆ init()

template<class FileStream , class FileData , class FileHeader >
void gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::init ( const FileSpecFind::Filter filter = FileSpecFind::Filter())
protected

Run init() to load the data into the filter.

Exceptions
Exception

Definition at line 439 of file FileFilterFrameWithHeader.hpp.

◆ newSource() [1/3]

template<class FileStream , class FileData , class FileHeader >
FileFilterFrameWithHeader& gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::newSource ( const FileSpec filespec,
const gnsstk::CommonTime start = gnsstk::CommonTime::BEGINNING_OF_TIME,
const gnsstk::CommonTime end = gnsstk::CommonTime::END_OF_TIME,
const FileSpecFind::Filter filter = FileSpecFind::Filter() 
)
inline

Gets the files from the file spec and the time, then adds the data to the filter. Use filter like you would in FileSpecFind, to filter FOR stations, receivers, etc.

Exceptions
Exception

Definition at line 133 of file FileFilterFrameWithHeader.hpp.

◆ newSource() [2/3]

template<class FileStream , class FileData , class FileHeader >
FileFilterFrameWithHeader& gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::newSource ( const std::string &  filename,
const gnsstk::CommonTime start = gnsstk::CommonTime::BEGINNING_OF_TIME,
const gnsstk::CommonTime end = gnsstk::CommonTime::END_OF_TIME 
)
inline

Reads in the file and adds the data to the filter.

Exceptions
Exception

Definition at line 150 of file FileFilterFrameWithHeader.hpp.

◆ newSource() [3/3]

template<class FileStream , class FileData , class FileHeader >
FileFilterFrameWithHeader& gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::newSource ( const std::vector< std::string > &  fileList,
const gnsstk::CommonTime start = gnsstk::CommonTime::BEGINNING_OF_TIME,
const gnsstk::CommonTime end = gnsstk::CommonTime::END_OF_TIME 
)
inline

Reads in the file and adds the data to the filter.

Exceptions
Exception

Definition at line 165 of file FileFilterFrameWithHeader.hpp.

◆ sizeHeader()

template<class FileStream , class FileData , class FileHeader >
std::list<FileHeader>::size_type gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::sizeHeader ( )
inline

Definition at line 280 of file FileFilterFrameWithHeader.hpp.

◆ touchHeader()

template<class FileStream , class FileData , class FileHeader >
template<class Operation >
FileFilterFrameWithHeader& gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::touchHeader ( Operation &  op)
inline

performs the operation op on the header list.

Definition at line 234 of file FileFilterFrameWithHeader.hpp.

◆ writeFile()

template<class FileStream , class FileData , class FileHeader >
bool gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::writeFile ( const std::string &  outputFile,
const FileHeader &  fh 
) const

Writes the data to the file outputFile with the given header. This will overwrite any existing file with the same name. This can throw an exception when there's a file error.

Returns
true when it works.
Warning
This will not write out headers for files that need them.
Exceptions
Exception

Definition at line 328 of file FileFilterFrameWithHeader.hpp.

Member Data Documentation

◆ headerList

template<class FileStream , class FileData , class FileHeader >
std::list<FileHeader> gnsstk::FileFilterFrameWithHeader< FileStream, FileData, FileHeader >::headerList
protected

Definition at line 321 of file FileFilterFrameWithHeader.hpp.


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


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:44