implement json forwarder

Former-commit-id: 5519118304bd5690e6b512481347579339e78ac9
This commit is contained in:
redpanther
2016-02-15 20:53:03 +01:00
parent b01b5eb005
commit df91527557
5 changed files with 45 additions and 14 deletions

View File

@@ -275,13 +275,19 @@ MessageForwarder * Hyperion::createMessageForwarder(const Json::Value & forwarde
if ( ! forwarderConfig["json"].isNull() && forwarderConfig["json"].isArray() )
{
for (const Json::Value& addr : forwarderConfig["json"])
{
std::cout << "Json forward to " << addr.asString() << std::endl;
forwarder->addJsonSlave(addr.asString());
}
}
if ( ! forwarderConfig["proto"].isNull() && forwarderConfig["proto"].isArray() )
{
for (const Json::Value& addr : forwarderConfig["proto"])
{
std::cout << "Proto forward to " << addr.asString() << std::endl;
forwarder->addProtoSlave(addr.asString());
}
}
}

View File

@@ -1,8 +1,7 @@
#include <hyperion/MessageForwarder.h>
MessageForwarder::MessageForwarder() :
_running(false)
MessageForwarder::MessageForwarder()
{
}
@@ -13,7 +12,19 @@ MessageForwarder::~MessageForwarder()
void MessageForwarder::addJsonSlave(std::string slave)
{
std::cout << slave << std::endl;
QStringList parts = QString(slave.c_str()).split(":");
if (parts.size() != 2)
throw std::runtime_error(QString("Wrong address: unable to parse address (%1)").arg(slave.c_str()).toStdString());
bool ok;
quint16 port = parts[1].toUShort(&ok);
if (!ok)
throw std::runtime_error(QString("Wrong address: Unable to parse the port number (%1)").arg(parts[1]).toStdString());
JsonSlaveAddress c;
c.addr = QHostAddress(parts[0]);
c.port = port;
_jsonSlaves << c;
}
void MessageForwarder::addProtoSlave(std::string slave)
@@ -23,12 +34,14 @@ void MessageForwarder::addProtoSlave(std::string slave)
void MessageForwarder::sendMessage()
{
if ( ! _running )
return;
}
QStringList MessageForwarder::getProtoSlaves()
{
return _protoSlaves;
}
QList<MessageForwarder::JsonSlaveAddress> MessageForwarder::getJsonSlaves()
{
return _jsonSlaves;
}