bool resize(int new_size) // Return false if we couldn't resize. { if (m_read_only) return false; m_.resize(new_size); // Hm, does this make sense? We're truncating the file, so clamping the cursor. // Alternative would be to disallow resize, but that doesn't seem good either. if (m_position > m_.size()) { m_position = m_.size(); } return true; }
bool membuf::operator!=(const membuf& buf) const { if (size() != buf.size()) { return false; } return memcmp(m_data, buf.m_data, size()) == 0 ? false : true; }
bool is_valid() { return m_position >= 0 && m_position <= m_.size(); }
void membuf::operator=(const membuf& buf) { resize(buf.size()); memcpy(m_data, buf.m_data, size()); m_read_only = buf.m_read_only; }
void membuf::append(const membuf& buf) { append(buf.data(), buf.size()); }