38 Impl(
const Pathname & historyFile_r,
const Options & options_r,
const ProcessData & callback_r )
44 bool parseLine(
const std::string & line_r,
unsigned int lineNr_r );
60 if ( fields.size() >= 2 )
74 WAR <<
"Ignore invalid history log entry on line #" << lineNr_r <<
" '"<< line_r <<
"'" << endl;
79 ERR <<
"Invalid history log entry on line #" << lineNr_r <<
" '"<< line_r <<
"'" << endl;
89 WAR <<
"Stop parsing requested by consumer callback on line #" << lineNr_r << endl;
104 for ( ; line; line.
next(), pd.
tick() )
107 if ( (*line)[0] ==
'#' )
110 if ( ! parseLine( *line, line.
lineNo() ) )
126 bool pastDate =
false;
127 for ( ; line; line.
next(), pd.
tick() )
129 const std::string & s = *line;
137 if ( ! parseLine( s, line.
lineNo() ) )
143 if ( logDate > date_r )
146 if ( ! parseLine( s, line.
lineNo() ) )
164 bool pastFromDate =
false;
165 for ( ; line; line.
next(), pd.
tick() )
167 const std::string & s = *line;
176 if ( logDate >= toDate_r )
180 if ( !pastFromDate && logDate > fromDate_r )
185 if ( ! parseLine( s, line.
lineNo() ) )