return true;
}
+static
+inline
+bool isEndOfCache( size_t pos, size_t cacheSize ) {
+ return ( pos == cacheSize );
+}
+
template<class T>
inline
bool IOStreamBuffer<T>::getNextLine(std::vector<T> &buffer) {
buffer.resize(m_cacheSize);
- if (m_cachePos == m_cacheSize || 0 == m_filePos) {
+ if ( isEndOfCache( m_cachePos, m_cacheSize ) || 0 == m_filePos) {
if (!readNextBlock()) {
return false;
}
++m_cachePos;
}
++m_cachePos;
+ if ( isEndOfCache( m_cachePos, m_cacheSize ) ) {
+ if ( !readNextBlock() ) {
+ return false;
+ }
+ }
}
size_t i = 0;
- while (!IsLineEnd(m_cache[m_cachePos])) {
- buffer[i] = m_cache[m_cachePos];
+ while (!IsLineEnd(m_cache[ m_cachePos ])) {
+ buffer[i] = m_cache[ m_cachePos ];
m_cachePos++;
i++;
if (m_cachePos >= m_cacheSize) {