common/consumertablebase.h (18 lines of code) (raw):
#pragma once
#include "table.h"
#include "selectable.h"
namespace swss {
class ConsumerTableBase: public TableConsumable, public RedisTransactioner
{
public:
const int POP_BATCH_SIZE;
ConsumerTableBase(DBConnector *db, const std::string &tableName, int popBatchSize = DEFAULT_POP_BATCH_SIZE, int pri = 0);
~ConsumerTableBase() override = default;
const DBConnector* getDbConnector() const;
void pop(KeyOpFieldsValuesTuple &kco, const std::string &prefix = EMPTY_PREFIX);
void pop(std::string &key, std::string &op, std::vector<FieldValueTuple> &fvs, const std::string &prefix = EMPTY_PREFIX);
bool empty() const { return m_buffer.empty(); };
protected:
std::deque<KeyOpFieldsValuesTuple> m_buffer;
};
}