diff options
Diffstat (limited to 'client/node.hpp')
| -rw-r--r-- | client/node.hpp | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/client/node.hpp b/client/node.hpp deleted file mode 100644 index afcf56a..0000000 --- a/client/node.hpp +++ /dev/null @@ -1,72 +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(ImAClient, imaclient) -MESSAGE_SETTER(Bye, bye) -MESSAGE_SETTER(KeyExchange, keyexchange) - -#undef MESSAGE_SETTER - -/*! - * \brief The Node class represents a node in the network. - */ -class Node -{ - Client client; -public: - /*! - * \brief Node - * \param socket an rvalue reference to the socket it takes ownership and uses to communicate with the next node in the network. - */ - Node(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 receive - * \param receive_handler - */ - void receive(std::function<void(std::vector<uint8_t> const&)> receive_handler); - - /*! - * \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(); -}; - |
