Introduce JsonRpcConnection#SendMessageInternal()

This commit is contained in:
Alexander A. Klimov 2019-02-26 10:17:10 +01:00
parent e6d78bf361
commit 79e95d2355
3 changed files with 11 additions and 9 deletions

View File

@ -36,15 +36,13 @@ void JsonRpcConnection::HandleAndWriteHeartbeats(boost::asio::yield_context yc)
break; break;
} }
m_OutgoingMessagesQueue.emplace_back(new Dictionary({ SendMessageInternal(new Dictionary({
{ "jsonrpc", "2.0" }, { "jsonrpc", "2.0" },
{ "method", "event::Heartbeat" }, { "method", "event::Heartbeat" },
{ "params", new Dictionary({ { "params", new Dictionary({
{ "timeout", 120 } { "timeout", 120 }
}) } }) }
})); }));
m_OutgoingMessagesQueued.Set();
} }
} }

View File

@ -160,10 +160,13 @@ ConnectionRole JsonRpcConnection::GetRole() const
void JsonRpcConnection::SendMessage(const Dictionary::Ptr& message) void JsonRpcConnection::SendMessage(const Dictionary::Ptr& message)
{ {
m_IoStrand.post([this, message]() { m_IoStrand.post([this, message]() { SendMessageInternal(message); });
}
void JsonRpcConnection::SendMessageInternal(const Dictionary::Ptr& message)
{
m_OutgoingMessagesQueue.emplace_back(message); m_OutgoingMessagesQueue.emplace_back(message);
m_OutgoingMessagesQueued.Set(); m_OutgoingMessagesQueued.Set();
});
} }
void JsonRpcConnection::Disconnect() void JsonRpcConnection::Disconnect()
@ -277,8 +280,7 @@ void JsonRpcConnection::MessageHandler(const String& jsonString)
resultMessage->Set("jsonrpc", "2.0"); resultMessage->Set("jsonrpc", "2.0");
resultMessage->Set("id", message->Get("id")); resultMessage->Set("id", message->Get("id"));
m_OutgoingMessagesQueue.emplace_back(resultMessage); SendMessageInternal(resultMessage);
m_OutgoingMessagesQueued.Set();
} }
} }

View File

@ -86,6 +86,8 @@ private:
void MessageHandler(const String& jsonString); void MessageHandler(const String& jsonString);
void CertificateRequestResponseHandler(const Dictionary::Ptr& message); void CertificateRequestResponseHandler(const Dictionary::Ptr& message);
void SendMessageInternal(const Dictionary::Ptr& request);
}; };
} }