bool increment(llong* id, valvec<byte>* key) override { auto owner = static_cast<const MockWritableIndex*>(m_index.get()); SpinRwLock lock(owner->m_rwMutex, false); if (terark_likely(owner->m_kv.end() != m_iter)) { *id = m_iter->second; copyKey(m_iter->first, key); ++m_iter; return true; } return false; }
uint64_t FileStream::read_var_uint61() { FILE* fp = m_fp; if (terark_likely(fp->_cnt >= 8)) { unsigned char* p = (unsigned char*)(fp->_ptr); uint64_t v = gg_load_var_uint61(p, (const unsigned char**)&fp->_ptr); fp->_cnt -= (unsigned char*)(fp->_ptr) - p; return v; } else // slower branch { return gg_load_var_uint61_slow<FileStream>(*this); } }
uint64_t FileStream::read_var_uint64() { FILE* fp = m_fp; if (terark_likely(fp->_cnt >= 10)) { unsigned char* p = (unsigned char*)(fp->_ptr); uint64_t v = gg_load_var_uint<uint64_t>(p, (const unsigned char**)&fp->_ptr, BOOST_CURRENT_FUNCTION); fp->_cnt -= (unsigned char*)(fp->_ptr) - p; return v; } else // slower branch { return gg_load_var_uint_slow<FileStream, uint64_t>(*this, BOOST_CURRENT_FUNCTION); } }