Exemple #1
0
	bool increment(llong* id, valvec<byte>* key) override {
		auto owner = static_cast<const SeqNumIndex*>(m_index.get());
		if (nark_likely(m_curr < owner->m_cnt)) {
			getIndexKey(id, key, owner, --m_curr);
			return true;
		}
		return false;
	}
Exemple #2
0
	bool increment(llong* id, valvec<byte>* key) override {
		auto owner = static_cast<const MockReadonlyIndex*>(m_index.get());
		assert(nullptr != id);
		if (nark_likely(m_pos > 0)) {
			owner->getIndexKey(id, key, --m_pos);
			return true;
		}
		return false;
	}
Exemple #3
0
	bool increment(llong* id, valvec<byte>* key) override {
		auto owner = static_cast<const MockWritableIndex*>(m_index.get());
		if (nark_likely(owner->m_kv.begin() != m_iter)) {
			--m_iter;
			*id = m_iter->second;
			copyKey(m_iter->first, key);
			return true;
		}
		return false;
	}
void kmapdset_iterator_impl_base::bulk_load(DBT* tk1)
{
	NARK_RT_assert(0 == m_ret, std::logic_error);
	load_key1(tk1->data, tk1->size);
	clear_vec();
	int ret;
	do {
		void  *bptr, *data;
		DB_MULTIPLE_INIT(bptr, &m_bulk);
		assert(NULL != bptr);
		for (;;)
		{
			size_t size = 0;
			DB_MULTIPLE_NEXT(bptr, &m_bulk, data, size);
			if (nark_likely(NULL != bptr))
				this->push_back(data, size);
			else
				break;
		}
		ret = m_curp->get(m_curp, tk1, &m_bulk, DB_MULTIPLE|DB_NEXT_DUP);
	} while (0 == ret);
}