diff options
Diffstat (limited to 'node/nextnode.hpp')
| -rw-r--r-- | node/nextnode.hpp | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/node/nextnode.hpp b/node/nextnode.hpp deleted file mode 100644 index c2e064c..0000000 --- a/node/nextnode.hpp +++ /dev/null @@ -1,66 +0,0 @@ -#pragma once - -#include "client.hpp" - -#include "cmix.pb.h" - -#include <boost/asio/ip/tcp.hpp> - -/*! - * \file - */ - -/*! - * MESSAGE_SETTER is a boilerplate macro that generates a setter function for our CMix - * protobuf messages, This because there are seperate functions for each to type to use. - * And there seems no way to solve this using templates. - */ -#define MESSAGE_SETTER(TYPE, NAME) \ -inline void message_setter(cmix_proto::CMixMessage& m, cmix_proto::TYPE const& v) { \ - *m.mutable_##NAME() = v; \ -} \ - -MESSAGE_SETTER(Initialization, initialization) -MESSAGE_SETTER(ImANode, imanode) -MESSAGE_SETTER(Bye, bye) - -#undef MESSAGE_SETTER - -/*! - * \brief The NextNode class represents the next node in the network, will only be sent to. - */ -class NextNode -{ - Client client; -public: - /*! - * \brief NextNode - * \param socket an rvalue reference to the socket it takes ownership and uses to communicate with the next node in the network. - */ - NextNode(boost::asio::ip::tcp::socket&& socket); - - /*! - * \brief send - * \param v The CMixMessage type we try to send and first have to wrap in a CMixMessage. - */ - template <typename T> - void send(T v) { - cmix_proto::CMixMessage m; - message_setter(m, v); - client.send(m.SerializeAsString()); - } - - /*! - * \brief async_connect - * \param next_host The host of the next node. - * \param next_port The port of the next node. - * \param on_connect The callback to call when the connect was succesfull. - */ - void async_connect(std::string next_host, std::string next_port, std::function<void()> on_connect); - - /*! - * \brief close This function closes the underlying socket connection. - */ - void close(); -}; - |
