summaryrefslogtreecommitdiffstats
path: root/src/rpc-server/trex_rpc_server_api.h
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2015-09-09 18:06:12 +0300
committerimarom <imarom@cisco.com>2015-09-09 18:56:11 +0300
commit54f8323b3938bf4ab672cde01a06711bfc522a2e (patch)
tree3454351e53499c2051715641e1b87b3e32f9a333 /src/rpc-server/trex_rpc_server_api.h
parente33befcf222fd2108d589dede11069d4256bb21a (diff)
added ownership to RPC server
Diffstat (limited to 'src/rpc-server/trex_rpc_server_api.h')
-rw-r--r--src/rpc-server/trex_rpc_server_api.h28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/rpc-server/trex_rpc_server_api.h b/src/rpc-server/trex_rpc_server_api.h
index b4313670..c34ac0f8 100644
--- a/src/rpc-server/trex_rpc_server_api.h
+++ b/src/rpc-server/trex_rpc_server_api.h
@@ -173,24 +173,50 @@ public:
}
/**
+ * owner handler
+ * for the connection
+ *
+ */
+ static const std::string &get_owner_handler() {
+ return s_owner_handler;
+ }
+
+ static bool is_free_to_aquire() {
+ return (s_owner == "none");
+ }
+
+ /**
* take ownership of the server array
* this is static
* ownership is total
*
*/
- static void set_owner(const std::string &owner) {
+ static std::string set_owner(const std::string &owner) {
s_owner = owner;
+ s_owner_handler = generate_handler();
+ return (s_owner_handler);
}
static void clear_owner() {
s_owner = "none";
+ s_owner_handler = "";
+ }
+
+ static bool verify_owner_handler(const std::string &handler) {
+
+ return ( (s_owner != "none") && (s_owner_handler == handler) );
+
}
private:
+ static std::string generate_handler();
+
std::vector<TrexRpcServerInterface *> m_servers;
bool m_verbose;
static const std::string s_server_uptime;
+
static std::string s_owner;
+ static std::string s_owner_handler;
};
#endif /* __TREX_RPC_SERVER_API_H__ */