common/consumertablebase.cpp (36 lines of code) (raw):

#include "consumertablebase.h" namespace swss { ConsumerTableBase::ConsumerTableBase(DBConnector *db, const std::string &tableName, int popBatchSize, int pri): TableConsumable(tableName, SonicDBConfig::getSeparator(db), pri), RedisTransactioner(db), POP_BATCH_SIZE(popBatchSize) { } const DBConnector* ConsumerTableBase::getDbConnector() const { return m_db; } void ConsumerTableBase::pop(KeyOpFieldsValuesTuple &kco, const std::string &prefix) { pop(kfvKey(kco), kfvOp(kco), kfvFieldsValues(kco), prefix); } void ConsumerTableBase::pop(std::string &key, std::string &op, std::vector<FieldValueTuple> &fvs, const std::string &prefix) { if (m_buffer.empty()) { pops(m_buffer, prefix); if (m_buffer.empty()) { fvs.clear(); key.clear(); op.clear(); return; } } KeyOpFieldsValuesTuple &kco = m_buffer.front(); key = kfvKey(kco); op = kfvOp(kco); fvs = kfvFieldsValues(kco); m_buffer.pop_front(); } }