mirror of
https://github.com/opencardev/aasdk.git
synced 2024-07-01 16:21:57 +02:00
WIP
This commit is contained in:
parent
1d91dec240
commit
23b7f37791
|
@ -49,6 +49,7 @@ private:
|
||||||
void outStreamMessageHandler(ChannelSendQueue::iterator queueElement);
|
void outStreamMessageHandler(ChannelSendQueue::iterator queueElement);
|
||||||
void rejectReceivePromiseQueue(const error::Error& e);
|
void rejectReceivePromiseQueue(const error::Error& e);
|
||||||
void rejectSendPromiseQueue(const error::Error& e);
|
void rejectSendPromiseQueue(const error::Error& e);
|
||||||
|
void parseMessage(Message::Pointer message, ReceivePromise::Pointer promise);
|
||||||
|
|
||||||
boost::asio::io_service::strand receiveStrand_;
|
boost::asio::io_service::strand receiveStrand_;
|
||||||
boost::asio::io_service::strand sendStrand_;
|
boost::asio::io_service::strand sendStrand_;
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <f1x/aasdk/Messenger/Message.hpp>
|
#include <f1x/aasdk/Messenger/Message.hpp>
|
||||||
|
#include <f1x/aasdk/Common/Log.hpp>
|
||||||
|
|
||||||
namespace f1x
|
namespace f1x
|
||||||
{
|
{
|
||||||
|
@ -83,6 +84,7 @@ void Message::insertPayload(const common::Data& payload)
|
||||||
|
|
||||||
void Message::insertPayload(const google::protobuf::Message& message)
|
void Message::insertPayload(const google::protobuf::Message& message)
|
||||||
{
|
{
|
||||||
|
AASDK_LOG(debug) << message.DebugString();
|
||||||
auto offset = payload_.size();
|
auto offset = payload_.size();
|
||||||
payload_.resize(payload_.size() + message.ByteSize());
|
payload_.resize(payload_.size() + message.ByteSize());
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include <boost/endian/conversion.hpp>
|
#include <boost/endian/conversion.hpp>
|
||||||
#include <f1x/aasdk/Error/Error.hpp>
|
#include <f1x/aasdk/Error/Error.hpp>
|
||||||
#include <f1x/aasdk/Messenger/Messenger.hpp>
|
#include <f1x/aasdk/Messenger/Messenger.hpp>
|
||||||
|
#include <f1x/aasdk/Common/Log.hpp>
|
||||||
|
|
||||||
namespace f1x
|
namespace f1x
|
||||||
{
|
{
|
||||||
|
@ -41,7 +42,7 @@ void Messenger::enqueueReceive(ChannelId channelId, ReceivePromise::Pointer prom
|
||||||
receiveStrand_.dispatch([this, self = this->shared_from_this(), channelId, promise = std::move(promise)]() mutable {
|
receiveStrand_.dispatch([this, self = this->shared_from_this(), channelId, promise = std::move(promise)]() mutable {
|
||||||
if(!channelReceiveMessageQueue_.empty(channelId))
|
if(!channelReceiveMessageQueue_.empty(channelId))
|
||||||
{
|
{
|
||||||
promise->resolve(std::move(channelReceiveMessageQueue_.pop(channelId)));
|
this->parseMessage(channelReceiveMessageQueue_.pop(channelId), promise);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -76,7 +77,7 @@ void Messenger::inStreamMessageHandler(Message::Pointer message)
|
||||||
|
|
||||||
if(channelReceivePromiseQueue_.isPending(channelId))
|
if(channelReceivePromiseQueue_.isPending(channelId))
|
||||||
{
|
{
|
||||||
channelReceivePromiseQueue_.pop(channelId)->resolve(std::move(message));
|
this->parseMessage(message, channelReceivePromiseQueue_.pop(channelId));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -92,6 +93,11 @@ void Messenger::inStreamMessageHandler(Message::Pointer message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Messenger::parseMessage(Message::Pointer message, ReceivePromise::Pointer promise) {
|
||||||
|
AASDK_LOG(debug) << channelIdToString(message->getChannelId()) << " " << MessageId(message->getPayload());
|
||||||
|
promise->resolve(message);
|
||||||
|
}
|
||||||
|
|
||||||
void Messenger::doSend()
|
void Messenger::doSend()
|
||||||
{
|
{
|
||||||
auto queueElementIter = channelSendPromiseQueue_.begin();
|
auto queueElementIter = channelSendPromiseQueue_.begin();
|
||||||
|
|
Loading…
Reference in a new issue