mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-23 13:45:04 +02:00
JsonRpc::SendMessage(): add Boost ASIO overload
This commit is contained in:
parent
43658de529
commit
49ac7777e0
@ -6,7 +6,10 @@
|
|||||||
#include "base/console.hpp"
|
#include "base/console.hpp"
|
||||||
#include "base/scriptglobal.hpp"
|
#include "base/scriptglobal.hpp"
|
||||||
#include "base/convert.hpp"
|
#include "base/convert.hpp"
|
||||||
|
#include "base/tlsstream.hpp"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <memory>
|
||||||
|
#include <boost/asio/spawn.hpp>
|
||||||
|
|
||||||
using namespace icinga;
|
using namespace icinga;
|
||||||
|
|
||||||
@ -55,6 +58,25 @@ size_t JsonRpc::SendMessage(const Stream::Ptr& stream, const Dictionary::Ptr& me
|
|||||||
return NetString::WriteStringToStream(stream, json);
|
return NetString::WriteStringToStream(stream, json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sends a message to the connected peer and returns the bytes sent.
|
||||||
|
*
|
||||||
|
* @param message The message.
|
||||||
|
*
|
||||||
|
* @return The amount of bytes sent.
|
||||||
|
*/
|
||||||
|
size_t JsonRpc::SendMessage(const std::shared_ptr<AsioTlsStream>& stream, const Dictionary::Ptr& message, boost::asio::yield_context yc)
|
||||||
|
{
|
||||||
|
String json = JsonEncode(message);
|
||||||
|
|
||||||
|
#ifdef I2_DEBUG
|
||||||
|
if (GetDebugJsonRpcCached())
|
||||||
|
std::cerr << ConsoleColorTag(Console_ForegroundBlue) << ">> " << json << ConsoleColorTag(Console_Normal) << "\n";
|
||||||
|
#endif /* I2_DEBUG */
|
||||||
|
|
||||||
|
return NetString::WriteStringToStream(stream, json, yc);
|
||||||
|
}
|
||||||
|
|
||||||
StreamReadStatus JsonRpc::ReadMessage(const Stream::Ptr& stream, String *message, StreamReadContext& src, bool may_wait, ssize_t maxMessageLength)
|
StreamReadStatus JsonRpc::ReadMessage(const Stream::Ptr& stream, String *message, StreamReadContext& src, bool may_wait, ssize_t maxMessageLength)
|
||||||
{
|
{
|
||||||
String jsonString;
|
String jsonString;
|
||||||
|
@ -5,7 +5,10 @@
|
|||||||
|
|
||||||
#include "base/stream.hpp"
|
#include "base/stream.hpp"
|
||||||
#include "base/dictionary.hpp"
|
#include "base/dictionary.hpp"
|
||||||
|
#include "base/tlsstream.hpp"
|
||||||
#include "remote/i2-remote.hpp"
|
#include "remote/i2-remote.hpp"
|
||||||
|
#include <memory>
|
||||||
|
#include <boost/asio/spawn.hpp>
|
||||||
|
|
||||||
namespace icinga
|
namespace icinga
|
||||||
{
|
{
|
||||||
@ -19,6 +22,7 @@ class JsonRpc
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static size_t SendMessage(const Stream::Ptr& stream, const Dictionary::Ptr& message);
|
static size_t SendMessage(const Stream::Ptr& stream, const Dictionary::Ptr& message);
|
||||||
|
static size_t SendMessage(const std::shared_ptr<AsioTlsStream>& stream, const Dictionary::Ptr& message, boost::asio::yield_context yc);
|
||||||
static StreamReadStatus ReadMessage(const Stream::Ptr& stream, String *message, StreamReadContext& src, bool may_wait = false, ssize_t maxMessageLength = -1);
|
static StreamReadStatus ReadMessage(const Stream::Ptr& stream, String *message, StreamReadContext& src, bool may_wait = false, ssize_t maxMessageLength = -1);
|
||||||
static Dictionary::Ptr DecodeMessage(const String& message);
|
static Dictionary::Ptr DecodeMessage(const String& message);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user