common/c-api/subscriberstatetable.cpp (40 lines of code) (raw):
#include <boost/numeric/conversion/cast.hpp>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <system_error>
#include "../dbconnector.h"
#include "../subscriberstatetable.h"
#include "../table.h"
#include "subscriberstatetable.h"
#include "util.h"
using namespace swss;
using namespace std;
using boost::numeric_cast;
SWSSSubscriberStateTable SWSSSubscriberStateTable_new(SWSSDBConnector db, const char *tableName,
const int32_t *p_popBatchSize,
const int32_t *p_pri) {
int popBatchSize = p_popBatchSize ? numeric_cast<int>(*p_popBatchSize)
: TableConsumable::DEFAULT_POP_BATCH_SIZE;
int pri = p_pri ? numeric_cast<int>(*p_pri) : 0;
SWSSTry(return (SWSSSubscriberStateTable) new SubscriberStateTable(
(DBConnector *)db, string(tableName), popBatchSize, pri));
}
void SWSSSubscriberStateTable_free(SWSSSubscriberStateTable tbl) {
delete (SubscriberStateTable *)tbl;
}
SWSSKeyOpFieldValuesArray SWSSSubscriberStateTable_pops(SWSSSubscriberStateTable tbl) {
SWSSTry({
deque<KeyOpFieldsValuesTuple> vkco;
((SubscriberStateTable *)tbl)->pops(vkco);
return makeKeyOpFieldValuesArray(vkco);
});
}
uint32_t SWSSSubscriberStateTable_getFd(SWSSSubscriberStateTable tbl) {
SWSSTry(return numeric_cast<uint32_t>(((SubscriberStateTable *)tbl)->getFd()));
}
SWSSSelectResult SWSSSubscriberStateTable_readData(SWSSSubscriberStateTable tbl,
uint32_t timeout_ms,
uint8_t interrupt_on_signal) {
SWSSTry(return selectOne((SubscriberStateTable *)tbl, timeout_ms, interrupt_on_signal));
}