aboutsummaryrefslogtreecommitdiff
path: root/client/node.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'client/node.hpp')
-rw-r--r--client/node.hpp72
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();
-};
-