Example #1
0
	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;
	}
Example #2
0
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);
	}
}
Example #3
0
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);
	}
}