public:
explicit Impl(Exposer& exposer, const std::string& path)
{
- auto dispatcher = [&exposer](Message message) -> Message {
+ auto dispatcher = [&exposer](auto& message) -> Message {
std::string function = message.signature;
auto iter = exposer.functorMap.find(function);
if (iter == exposer.functorMap.end())
{
}
- Message request(Message message)
+ Message request(Message& message)
{
return this->client.request(message);
}
Remote::~Remote() = default;
-Message Remote::request(Message message)
+Message Remote::request(Message& message)
{
return pImpl->request(message);
}
R invoke(const std::string& name, Args&&... args);
private:
- Message request(Message message);
+ Message request(Message& message);
class Impl;
std::unique_ptr<Impl> pImpl;
using Context = boost::asio::io_service;
using Endpoint = boost::asio::local::stream_protocol::endpoint;
using Socket = boost::asio::local::stream_protocol::socket;
- using Task = std::function<Message(Message)>;
+ using Task = std::function<Message(Message&)>;
static Message Recv(Socket& socket);
static void Send(Socket& socket, Message& message);
auto async = std::make_shared<Protocol::Async>(context);
auto handler = [&](const auto& error) {
EXPECT_EQ(error, boost::system::errc::success);
- auto task = [&](Message message) -> Message {
+ auto task = [&](auto& message) -> Message {
EXPECT_EQ(message.signature, requestSignature);
int recv1;
{
std::string sockPath = "vist-test.sock";
- auto task = [&](Message message) -> Message {
+ auto task = [&](Message& message) -> Message {
EXPECT_EQ(message.signature, requestSignature);
int recv1;