#include "RedisAgent.h" RedisAgent::RedisAgent() : QObject() { } RedisAgent::~RedisAgent() { } void RedisAgent::SubCB(char* topic, char* msg) { emit sigEvent(topic, msg); } bool RedisAgent::Connect(tagSetup ts) { objRedis.Setup(ts); objRedis.start(); return true; } bool RedisAgent::Subscribe(std::list topics) { bool ret = true; std::list::iterator itr; for (itr = topics.begin(); itr != topics.end(); ++itr) { objRedis.subscribe(itr->c_str(), this); } return ret; } void RedisAgent::Publish(std::string szKey,QVariant v) { std::string szContent; switch( v.type() ) { case QMetaType::Bool: szContent = v.toBool() ? "true":"false"; break; case QMetaType::Int: szContent = std::to_string(v.toInt()); break; case QMetaType::UInt: szContent = std::to_string(v.toUInt()); break; case QMetaType::LongLong: szContent = std::to_string(v.toLongLong()); break; case QMetaType::ULongLong: szContent = std::to_string(v.toULongLong()); break; case QMetaType::Double: szContent = std::to_string(v.toDouble()); break; case QMetaType::QString: szContent = v.toString().toLocal8Bit().toStdString(); break; } objRedis.publish(szKey.c_str(), szContent.c_str()); //把数据发送到对应主题 } QStringList RedisAgent::hvals(QString k) { return objRedis.hvals(k); }