1111#include " hyperion_reply_generated.h"
1212#include " hyperion_request_generated.h"
1313
14- #define QSTRING_CSTR (str ) str.toLocal8Bit().constData()
15-
1614FlatBufferConnection::FlatBufferConnection (const QString& origin, const QString& host, int priority, quint16 port)
1715 : _socket()
1816 , _origin(origin)
@@ -23,7 +21,7 @@ FlatBufferConnection::FlatBufferConnection(const QString& origin, const QString&
2321 , _registered(false )
2422{
2523 connect (&_socket, &QTcpSocket::readyRead, this , &FlatBufferConnection::readData, Qt::UniqueConnection);
26- connect (&_socket, &QTcpSocket::disconnected, [=]() { this -> logMessage ( " Connection to Hyperion server was closed " ); } );
24+ connect (&_socket, &QTcpSocket::disconnected, this , &FlatBufferConnection::serverDisconnected );
2725
2826 // init connect
2927 connectToHost ();
@@ -69,18 +67,18 @@ void FlatBufferConnection::readData()
6967 const hyperionnet::Reply* reply = hyperionnet::GetReply (msgData);
7068 if (!parseReply (reply))
7169 {
72- logMessage (QSTRING_CSTR ( QString (" Reply received with error: %1" ).arg (reply->error ()->c_str () )));
70+ emit logMessage (QString (" Reply received with error: %1" ).arg (reply->error ()->c_str ()));
7371 }
7472 continue ;
7573 }
7674
77- logMessage (" Unable to parse reply" );
75+ emit logMessage (" Unable to parse reply" );
7876 }
7977}
8078
8179void FlatBufferConnection::setRegister (const QString& origin, int priority)
8280{
83- auto registerReq = hyperionnet::CreateRegister (_builder, _builder.CreateString (QSTRING_CSTR ( origin)), priority);
81+ auto registerReq = hyperionnet::CreateRegister (_builder, _builder.CreateString (origin. toLocal8Bit (). constData ( )), priority);
8482 auto req = hyperionnet::CreateRequest (_builder, hyperionnet::Command_Register, registerReq.Union ());
8583
8684 _builder.Finish (req);
@@ -127,13 +125,13 @@ void FlatBufferConnection::sendMessage(const uint8_t* buffer, uint32_t size)
127125 switch (_socket.state () )
128126 {
129127 case QAbstractSocket::UnconnectedState:
130- logMessage (QString (" No connection to Hyperion: %1:%2" ).arg (_host).arg (_port));
128+ emit logMessage (QString (" No connection to Hyperion: %1:%2" ).arg (_host).arg (_port));
131129 break ;
132130 case QAbstractSocket::ConnectedState:
133- logMessage (QString (" Connected to Hyperion: %1:%2" ).arg (_host).arg (_port));
131+ emit logMessage (QString (" Connected to Hyperion: %1:%2" ).arg (_host).arg (_port));
134132 break ;
135133 default :
136- logMessage (QString (" Connecting to Hyperion: %1:%2" ).arg (_host).arg (_port));
134+ emit logMessage (QString (" Connecting to Hyperion: %1:%2" ).arg (_host).arg (_port));
137135 break ;
138136 }
139137 _prevSocketState = _socket.state ();
@@ -184,13 +182,3 @@ bool FlatBufferConnection::parseReply(const hyperionnet::Reply *reply)
184182 }
185183 return false ;
186184}
187-
188- void FlatBufferConnection::logMessage (const QString& message)
189- {
190- struct calldata call_data;
191- calldata_init (&call_data);
192- calldata_set_string (&call_data, " msg" , QSTRING_CSTR (message));
193- signal_handler_t *handler = hyperion_get_signal_handler ();
194- signal_handler_signal (handler, " log" , &call_data);
195- calldata_free (&call_data);
196- }
0 commit comments