Changeset View
Changeset View
Standalone View
Standalone View
services/tunnelbroker/src/Service/TunnelbrokerServiceImpl.cpp
Show First 20 Lines • Show All 191 Lines • ▼ Show 20 Lines | if (messagesFromDatabase.size() > 0) { | ||||
// if there are undelivered messages in the database. If so, we are | // if there are undelivered messages in the database. If so, we are | ||||
// erasing the messages to deliver from rabbitMQ which are handled by | // erasing the messages to deliver from rabbitMQ which are handled by | ||||
// DeliveryBroker. | // DeliveryBroker. | ||||
DeliveryBroker::getInstance().erase(clientDeviceID); | DeliveryBroker::getInstance().erase(clientDeviceID); | ||||
} | } | ||||
tunnelbroker::GetResponse response; | tunnelbroker::GetResponse response; | ||||
auto respondToWriter = | auto respondToWriter = | ||||
[&writer, &response](std::string fromDeviceID, std::string payload) { | [&writer, &response](std::string fromDeviceID, std::string payload) { | ||||
response.set_fromdeviceid(fromDeviceID); | response.mutable_responsemessage()->set_fromdeviceid(fromDeviceID); | ||||
response.set_payload(payload); | response.mutable_responsemessage()->set_payload(payload); | ||||
if (!writer->Write(response)) { | if (!writer->Write(response)) { | ||||
throw std::runtime_error( | throw std::runtime_error( | ||||
"gRPC: 'Get' writer error on sending data to the client"); | "gRPC: 'Get' writer error on sending data to the client"); | ||||
} | } | ||||
response.Clear(); | response.Clear(); | ||||
}; | }; | ||||
for (auto &messageFromDatabase : messagesFromDatabase) { | for (auto &messageFromDatabase : messagesFromDatabase) { | ||||
respondToWriter( | respondToWriter( | ||||
Show All 28 Lines |