1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #include "RedisAgent.h"
- RedisAgent::RedisAgent()
- : QObject()
- {
- }
- RedisAgent::~RedisAgent()
- {
- }
- void RedisAgent::SubCB(const std::string topic, const std::string msg)
- {
- emit sigEvent(topic, msg);
- }
- bool RedisAgent::Connect(tagSetup ts)
- {
- objRedis.Setup(ts);
- objRedis.start();
- return true;
- }
- bool RedisAgent::Subscribe(std::list<std::string> topics)
- {
- bool ret = true;
- std::list<std::string>::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);
- }
|