15#ifndef _RBTBASEFILESOURCE_H_
16#define _RBTBASEFILESOURCE_H_
20#include "rxdock/Config.h"
22#include <nlohmann/json.hpp>
24using json = nlohmann::json;
29typedef std::string FileRec;
30typedef std::vector<FileRec> FileRecList;
31typedef FileRecList::iterator FileRecListIter;
34const int MAXLINELENGTH = 255;
41 BaseFileSource(
const std::string &fileName,
const std::string &strRecDelim);
46 friend void to_json(json &j,
const BaseFileSource &baseFileSource);
47 friend void from_json(
const json &j,
BaseFileSource &baseFileSource);
51 RBTDLL_EXPORT std::string GetFileName();
53 void SetFileName(
const std::string &fileName);
57 RBTDLL_EXPORT
Error Status();
60 RBTDLL_EXPORT
bool FileStatusOK();
64 bool isMultiRecordSupported() {
return m_bMultiRec; }
65 RBTDLL_EXPORT
void NextRecord();
67 RBTDLL_EXPORT std::size_t GetEstimatedNumRecords();
73 virtual void Parse() = 0;
75 void Read(
bool aDelimiterAtEnd =
true);
81 FileRecList m_lineRecs;
97 std::string m_strFileName;
98 std::size_t m_fileSize;
100 std::size_t m_numReads;
101 std::size_t m_bytesRead;
102 std::ifstream m_fileIn;
106 std::string m_strRecDelim;
Definition BaseFileSource.h:36