aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/deps/rpclib/include/rpc/this_server.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/this_server.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/this_server.h')
-rw-r--r--host/lib/deps/rpclib/include/rpc/this_server.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/host/lib/deps/rpclib/include/rpc/this_server.h b/host/lib/deps/rpclib/include/rpc/this_server.h
new file mode 100644
index 000000000..7e8826b69
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/this_server.h
@@ -0,0 +1,37 @@
+#pragma once
+
+#ifndef THIS_SERVER_H_X0CJLVVW
+#define THIS_SERVER_H_X0CJLVVW
+
+namespace rpc {
+
+namespace detail {
+class server_session;
+}
+
+//! \brief Allows controlling the server instance from the
+//! currently executing handler.
+class this_server_t {
+public:
+ //! \brief Gracefully stops the server.
+ void stop();
+
+ //! \brief Cancels a requested stop operation.
+ void cancel_stop();
+
+ friend class rpc::detail::server_session;
+
+private:
+ bool stopping_;
+};
+
+//! \brief A thread-local object that can be used to control
+//! the behavior of the server w.r.t. the handler. Accessing this object
+//! from handlers that execute the same function concurrently is safe.
+//! \note Accessing this object outside of handlers while a server is
+//! running is potentially unsafe.
+this_server_t &this_server();
+
+} /* rpc */
+
+#endif /* end of include guard: THIS_SERVER_H_X0CJLVVW */