common/c-api/zmqclient.cpp (26 lines of code) (raw):
#include "../zmqclient.h"
#include "../binaryserializer.h"
#include "util.h"
#include "zmqclient.h"
using namespace swss;
using namespace std;
SWSSZmqClient SWSSZmqClient_new(const char *endpoint) {
SWSSTry(return (SWSSZmqClient) new ZmqClient(endpoint));
}
void SWSSZmqClient_free(SWSSZmqClient zmqc) {
SWSSTry(delete (ZmqClient *)zmqc);
}
// Returns 0 for false, 1 for true
int8_t SWSSZmqClient_isConnected(SWSSZmqClient zmqc) {
SWSSTry(return ((ZmqClient *)zmqc)->isConnected() ? 1 : 0);
}
void SWSSZmqClient_connect(SWSSZmqClient zmqc) {
SWSSTry(((ZmqClient *)zmqc)->connect());
}
void SWSSZmqClient_sendMsg(SWSSZmqClient zmqc, const char *dbName, const char *tableName,
SWSSKeyOpFieldValuesArray arr) {
SWSSTry({
vector<KeyOpFieldsValuesTuple> kcos = takeKeyOpFieldValuesArray(arr);
((ZmqClient *)zmqc)
->sendMsg(string(dbName), string(tableName), kcos);
});
}