aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/deps/rpclib/include/rpc/detail/server_session.h
diff options
context:
space:
mode:
authorAndrej Rode <andrej.rode@ettus.com>2017-04-03 18:49:58 -0700
committerMartin Braun <martin.braun@ettus.com>2017-12-22 15:03:45 -0800
commit53795c74aead4e6021bc788b788f8ed5b4a0166d (patch)
tree45e4075f3d8ffdee7dff7c72dd665f5c5b0c746c /host/lib/deps/rpclib/include/rpc/detail/server_session.h
parent6a12add1560545438e1bebc05efbafd05aace4f9 (diff)
downloaduhd-53795c74aead4e6021bc788b788f8ed5b4a0166d.tar.gz
uhd-53795c74aead4e6021bc788b788f8ed5b4a0166d.tar.bz2
uhd-53795c74aead4e6021bc788b788f8ed5b4a0166d.zip
uhd: add cut-down rpclib source tree and import tool
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 */