aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/deps/rpclib/include/rpc/detail/server_session.h
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib/deps/rpclib/include/rpc/detail/server_session.h')
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/server_session.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/host/lib/deps/rpclib/include/rpc/detail/server_session.h b/host/lib/deps/rpclib/include/rpc/detail/server_session.h
new file mode 100644
index 000000000..963b082ec
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/server_session.h
@@ -0,0 +1,48 @@
+#pragma once
+
+#ifndef SESSION_H_5KG6ZMAB
+#define SESSION_H_5KG6ZMAB
+
+#include <boost/asio.hpp>
+#include <memory>
+#include <vector>
+
+#include "rpc/config.h"
+#include "rpc/msgpack.hpp"
+
+#include "rpc/dispatcher.h"
+#include "rpc/detail/async_writer.h"
+#include "rpc/detail/log.h"
+
+namespace rpc {
+
+class server;
+
+namespace detail {
+
+class server_session : public async_writer {
+public:
+ server_session(server *srv, boost::asio::io_service *io,
+ boost::asio::ip::tcp::socket socket,
+ std::shared_ptr<dispatcher> disp, bool suppress_exceptions);
+ void start();
+
+ void close();
+
+private:
+ void do_read();
+
+private:
+ server* parent_;
+ boost::asio::io_service *io_;
+ boost::asio::strand read_strand_;
+ std::shared_ptr<dispatcher> disp_;
+ RPCLIB_MSGPACK::unpacker pac_;
+ RPCLIB_MSGPACK::sbuffer output_buf_;
+ const bool suppress_exceptions_;
+ RPCLIB_CREATE_LOG_CHANNEL(session)
+};
+} /* detail */
+} /* rpc */
+
+#endif /* end of include guard: SESSION_H_5KG6ZMAB */