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