Classes | Public Member Functions | Protected Types | Protected Attributes | List of all members
gnsstk::FileFilter< FileData > Class Template Reference

Detailed Description

template<class FileData>
class gnsstk::FileFilter< FileData >

This class is a framework for sorting and filtering file data. It borrows several datatypes from FileSpec for cohesion of data types. Add the data to the filter, specify the parameters (date, exclusion filters, etc.), then process it. For the specific data type, you can specify your own operators for sorting, uniqueness, or almost anything else you want to do to the data.

Warning
The FFData class you're sorting MUST have a weak strict ordering as defined in the FileFilterOperator.

Definition at line 76 of file FileFilter.hpp.

#include <FileFilter.hpp>

Inheritance diagram for gnsstk::FileFilter< FileData >:
Inheritance graph
[legend]

Classes

class  SortAdapter
 

Public Member Functions

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 Types

typedef std::list< FileData >::iterator lItrType
 
typedef std::list< FileData > lType
 List of file data to be filtered. More...
 

Protected Attributes

lType dataVec
 
int filtered
 A count of the last number of items filtered. More...
 

Member Typedef Documentation

◆ lItrType

template<class FileData >
typedef std::list<FileData>::iterator gnsstk::FileFilter< FileData >::lItrType
protected

Definition at line 359 of file FileFilter.hpp.

◆ lType

template<class FileData >
typedef std::list<FileData> gnsstk::FileFilter< FileData >::lType
protected

List of file data to be filtered.

Definition at line 357 of file FileFilter.hpp.

Constructor & Destructor Documentation

◆ FileFilter()

template<class FileData >
gnsstk::FileFilter< FileData >::FileFilter ( void  )

Default constructor.

Definition at line 390 of file FileFilter.hpp.

◆ ~FileFilter()

template<class FileData >
gnsstk::FileFilter< FileData >::~FileFilter
virtual

Destructor.

Definition at line 395 of file FileFilter.hpp.

Member Function Documentation

◆ addData() [1/2]

template<class FileData >
FileFilter< FileData > & gnsstk::FileFilter< FileData >::addData ( const FileData &  ffd)

Adds the given data into the filter.

Definition at line 401 of file FileFilter.hpp.

◆ addData() [2/2]

template<class FileData >
FileFilter< FileData > & gnsstk::FileFilter< FileData >::addData ( const std::list< FileData > &  datavec)

Adds arbitrary data to the filter.

Definition at line 409 of file FileFilter.hpp.

◆ back() [1/2]

template<class FileData >
FileData& gnsstk::FileFilter< FileData >::back ( )
inline

Definition at line 343 of file FileFilter.hpp.

◆ back() [2/2]

template<class FileData >
const FileData& gnsstk::FileFilter< FileData >::back ( ) const
inline

Definition at line 349 of file FileFilter.hpp.

◆ begin() [1/2]

template<class FileData >
std::list<FileData>::iterator gnsstk::FileFilter< FileData >::begin ( )
inline

Definition at line 316 of file FileFilter.hpp.

◆ begin() [2/2]

template<class FileData >
std::list<FileData>::const_iterator gnsstk::FileFilter< FileData >::begin ( ) const
inline

Definition at line 310 of file FileFilter.hpp.

◆ clear()

template<class FileData >
void gnsstk::FileFilter< FileData >::clear ( )
inline

Definition at line 325 of file FileFilter.hpp.

◆ diff()

template<class FileData >
template<class BinaryPredicate >
std::pair< std::list<FileData>, std::list<FileData> > gnsstk::FileFilter< FileData >::diff ( const FileFilter< FileData > &  r,
BinaryPredicate  p 
) const
inline

Returns two lists - one of the data in *this that isn't in r and the second of data in r that isn't in *this. Remember that /a p has to be a strict weak ordering on the data.

Warning
the input data needs to be sorted according to /a p before running diff(). This also means that /a p is a strict weak ordering on the data (i.e. /a p sorts the data).

Definition at line 257 of file FileFilter.hpp.

◆ empty()

template<class FileData >
bool gnsstk::FileFilter< FileData >::empty ( ) const
inline

Definition at line 322 of file FileFilter.hpp.

◆ end() [1/2]

template<class FileData >
std::list<FileData>::iterator gnsstk::FileFilter< FileData >::end ( )
inline

Definition at line 319 of file FileFilter.hpp.

◆ end() [2/2]

template<class FileData >
std::list<FileData>::const_iterator gnsstk::FileFilter< FileData >::end ( ) const
inline

Definition at line 313 of file FileFilter.hpp.

◆ filter()

template<class FileData >
template<class Predicate >
FileFilter& gnsstk::FileFilter< FileData >::filter ( Predicate  up)
inline

This filters data based on a single test. All data that passes the UnaryPredicate (i.e. it returns true) is removed Filtered count is incremented for each value removed.

Warning
Depending on the filter, your data may need to be sorted

Definition at line 199 of file FileFilter.hpp.

◆ findAll()

template<class FileData >
template<class Predicate >
std::list<FileData> gnsstk::FileFilter< FileData >::findAll ( Predicate  p) const
inline

Returns a list of data matching the given unary predicate.

Definition at line 278 of file FileFilter.hpp.

◆ front() [1/2]

template<class FileData >
FileData& gnsstk::FileFilter< FileData >::front ( )
inline

Definition at line 331 of file FileFilter.hpp.

◆ front() [2/2]

template<class FileData >
const FileData& gnsstk::FileFilter< FileData >::front ( ) const
inline

Definition at line 337 of file FileFilter.hpp.

◆ getData() [1/2]

template<class FileData >
std::list<FileData>& gnsstk::FileFilter< FileData >::getData ( void  )
inline

Returns the contents of the data list.

Definition at line 299 of file FileFilter.hpp.

◆ getData() [2/2]

template<class FileData >
std::list<FileData> gnsstk::FileFilter< FileData >::getData ( void  ) const
inline

Returns the contents of the data list, const.

Definition at line 303 of file FileFilter.hpp.

◆ getDataCount()

template<class FileData >
std::list<FileData>::size_type gnsstk::FileFilter< FileData >::getDataCount ( void  ) const
inline

Returns the number of data items in the filter.

Definition at line 307 of file FileFilter.hpp.

◆ getFiltered()

template<class FileData >
int gnsstk::FileFilter< FileData >::getFiltered ( ) const
inline

Returns the number of items filtered from the last filter() touch() or unique() call.

Definition at line 295 of file FileFilter.hpp.

◆ merge() [1/2]

template<class FileData >
FileFilter< FileData > & gnsstk::FileFilter< FileData >::merge ( const FileFilter< FileData > &  right)

Combines the data from the input filter to this object.

Definition at line 419 of file FileFilter.hpp.

◆ merge() [2/2]

template<class FileData >
template<class Compare >
FileFilter& gnsstk::FileFilter< FileData >::merge ( const FileFilter< FileData > &  right,
Compare  bp 
)
inline

Combines the data from the input filter to this object using the predicate to sort the data it merges. This should use list::merge(list, bp) but since it's broken in forte...

Definition at line 152 of file FileFilter.hpp.

◆ size()

template<class FileData >
std::list<FileData>::size_type gnsstk::FileFilter< FileData >::size ( )
inline

Definition at line 328 of file FileFilter.hpp.

◆ sort()

template<class FileData >
template<class Compare >
FileFilter& gnsstk::FileFilter< FileData >::sort ( Compare  comp)
inline

Sorts the data.

Warning
bp MUST be a strict weak ordering!

Definition at line 94 of file FileFilter.hpp.

◆ touch() [1/2]

template<class FileData >
template<class Operation >
FileFilter& gnsstk::FileFilter< FileData >::touch ( const Operation &  op)
inline

a const operator touch for the classes that need it.

Definition at line 243 of file FileFilter.hpp.

◆ touch() [2/2]

template<class FileData >
template<class Operation >
FileFilter& gnsstk::FileFilter< FileData >::touch ( Operation &  op)
inline

Applies Operation on all the data elements, counting each one that gets modified (for which Operation returns true). The operation is passed by reference so that it can retain state information for use by the program calling it.

Definition at line 225 of file FileFilter.hpp.

◆ unique()

template<class FileData >
template<class BinaryPredicate >
FileFilter& gnsstk::FileFilter< FileData >::unique ( BinaryPredicate  bp)
inline

After sorting, use this to ensure that each data value is unique. Filtered count is incremented for each duplicate value removed.

Parameters
bpTest for equality
Warning
The data must be sorted first

Definition at line 160 of file FileFilter.hpp.

Member Data Documentation

◆ dataVec

template<class FileData >
lType gnsstk::FileFilter< FileData >::dataVec
protected

Definition at line 358 of file FileFilter.hpp.

◆ filtered

template<class FileData >
int gnsstk::FileFilter< FileData >::filtered
protected

A count of the last number of items filtered.

Definition at line 384 of file FileFilter.hpp.


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


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