Go to the documentation of this file.
44 #ifndef GNSSTK_RTFILEFRAME_HPP
45 #define GNSSTK_RTFILEFRAME_HPP
47 #include <sys/types.h>
81 template <
class FileStream,
class FileData>
88 template <
class FileStream,
class FileData>
130 return rtff->lastData;
136 return &(
rtff->lastData);
147 if ((
rtff->isOK == right.
rtff->isOK) ||
148 (!
rtff->isOK && (right.
rtff->fileStream ==
rtff->fileStream)))
153 return !right.
rtff->isOK;
162 {
return !(*
this == right);}
170 {
rtff->getRecord(); }
176 {
rtff->getRecord(); }
228 template <
class FileStream,
class FileData>
294 std::list<FileData>
getList()
const;
346 template <
class FileStream,
class FileData>
353 : fileStream(
NULL), fs(fnFormat), startTime(beginning),
354 currentTime(beginning), endTime(ending), readMode(frm), getMode(grm)
365 template <
class FileStream,
class FileData>
375 template <
class FileStream,
class FileData>
385 template <
class FileStream,
class FileData>
394 template <
class FileStream,
class FileData>
399 if(readMode == AppendedData)
403 std::streampos cachedPos = lastPosition;
404 if(openCurrentFile())
405 fileStream->seekg(cachedPos);
406 lastPosition = cachedPos;
415 template <
class FileStream,
class FileData>
419 struct stat tempStat;
420 if (stat(currentFileName.c_str(), &tempStat))
422 if (tempStat.st_mtime != fileInfo.st_mtime)
428 template <
class FileStream,
class FileData>
432 if (currentTime > endTime)
438 template <
class FileStream,
class FileData>
445 template <
class FileStream,
class FileData>
449 if (readMode == AppendedData)
463 template <
class FileStream,
class FileData>
471 if (*fileStream >> lastData)
473 lastPosition = fileStream->tellg();
481 if (getMode == Smart)
487 today.setYDoySod(today.year(), today.DOY(), 0);
489 if (currentTime < today)
516 template <
class FileStream,
class FileData>
521 currentTime += gnsstk::CommonTime::SEC_DAY;
526 template <
class FileStream,
class FileData>
531 std::list<FileData> toReturn;
532 inputStream = begin();
533 while (inputStream != end())
535 toReturn.push_back(
data());
540 template <
class FileStream,
class FileData>
546 inputStream = begin();
547 while (inputStream != end())
554 template <
class FileStream,
class FileData>
559 currentFileName = fs.toString(currentTime);
560 stat(currentFileName.c_str(), &fileInfo);
570 fileStream =
new FileStream;
571 fileStream->open(currentFileName.c_str(), std::ios::in);
572 if (!fileStream->fail())
577 template <
class FileStream,
class FileData>
592 #endif // GNSSTK_RTFILEFRAME_HPP
RTFileFrameIterator(const RTFileFrameIterator &right)
copy constructor
GetRecordMode getMode
the GetRecordMode for the reader
RTFileFrameIterator(gnsstk::RTFileFrame< FileStream, FileData > &r)
constructor for use by gnsstk::RTFileFrame<FileStream, FileData>.
RTFileFrame(const gnsstk::FileSpec &fnFormat, const gnsstk::CommonTime &beginning=gnsstk::CommonTime::BEGINNING_OF_TIME, const gnsstk::CommonTime &ending=gnsstk::CommonTime::END_OF_TIME, const RTFileFrameHelper::FileReadingMode frm=AppendedData, const RTFileFrameHelper::GetRecordMode grm=Dumb)
const FileData * operator->() const
dereference pointer for current object
gnsstk::CommonTime getCurrentTime() const
returns the current time used for finding files
void openNextDay()
when in Dumb mode, use this function to advance to the next day.
const FileData & data() const
returns the last read data
RTFileFrameIterator operator++(int)
postfix increment of internal iterator
@ FromTheBeginning
reread from the beginning every time.
FileReadingMode readMode
the FileReadingMode for the reader
const FileData & operator*() const
dereference object for current object
std::streampos lastPosition
the last get position from the file
@ AppendedData
read only appended data.
static const GNSSTK_EXPORT CommonTime BEGINNING_OF_TIME
earliest representable CommonTime
gnsstk::FileSpec fs
the file spec for determining file names
void read()
gets the next record
bool endOfDataSet()
Returns true if all data for the given time has been read.
FileFilter & addData(const FileData &ffd)
Adds the given data into the filter.
static const GNSSTK_EXPORT CommonTime END_OF_TIME
latest representable CommonTime
RTFileFrame & setGetRecordMode(const GetRecordMode g)
Allows changing of the GetRecordMode.
virtual ~RTFileFrameIterator()
destructor
FileStream * fileStream
the internal file stream for the internal iterator
gnsstk::RTFileFrame< FileStream, FileData > * rtff
gives access to the RTFileFrame being used
@ Dumb
only tries to read once from current file
gnsstk::CommonTime startTime
start time for file searching
bool openCurrentFile()
reopens the file currentFileName
@ Smart
if cannot read, rolls files or waits for data
gnsstk::CommonTime currentTime
time last used for finding a file
RTFileFrame & setFileReadingMode(const FileReadingMode f)
Allows changing of the FileReadingMode.
bool operator!=(const RTFileFrameIterator &right) const
inequality operator
RTFileFrameIterator & operator=(const RTFileFrameIterator &r)
assignment operator
struct stat fileInfo
keeps track of the last modify date for the last file read
RTFileFrameIterator< FileStream, FileData > begin()
std::string getCurrentFile() const
returns the name of the current file begin used
RTFileFrameIterator()
default constructor
void waitForData(unsigned wait=0)
std::list< FileData > getList() const
void closeCurrentFile()
close the file currentFileName
bool operator==(const RTFileFrameIterator &right) const
equality operator
std::string currentFileName
the last file to be read
RTFileFrameIterator operator++()
prefix increment of internal iterator
FileFilter< FileData > getFileFilter() const
gnsstk::CommonTime endTime
RTFileFrameIterator< FileStream, FileData > end()
end of data set iterator, useful for loops
gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:41