From d48e64a27299049ad1d37ad9636c930687028220 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Vitaliy=20Cherepanov/AI=20Tools=20Lab/Engineer/=EC=82=BC?= =?utf8?q?=EC=84=B1=EC=A0=84=EC=9E=90?= Date: Mon, 28 May 2018 15:30:49 +0300 Subject: [PATCH] nnc: implement PluginSession class (#248) nnc: implement PluginSession class This class will be used for nnc and plugins communication Signed-off-by: Vitaliy Cherepanov --- contrib/nnc/include/module/plugin/PluginSession.h | 39 ++++++++++++++++++ contrib/nnc/src/module/plugin/PluginSession.cpp | 49 +++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 contrib/nnc/include/module/plugin/PluginSession.h create mode 100644 contrib/nnc/src/module/plugin/PluginSession.cpp diff --git a/contrib/nnc/include/module/plugin/PluginSession.h b/contrib/nnc/include/module/plugin/PluginSession.h new file mode 100644 index 0000000..b6d2a28 --- /dev/null +++ b/contrib/nnc/include/module/plugin/PluginSession.h @@ -0,0 +1,39 @@ +#ifndef __PLUGIN_SESSION_H__ +#define __PLUGIN_SESSION_H__ + +#include +#include "AbstractSession.h" +#include "PluginParam.h" +#include "PluginData.h" + +namespace nncc +{ +namespace contrib +{ +namespace config +{ + +class PluginSession : public AbstractSession +{ +public: + PluginSession(); + + void addInfo(const std::string &name, const std::string &value) override; + void registerParam(const PluginParam ¶m) override; + + const DataList &getInfo() const; + const std::string &getInfo(const std::string &name) const; + const std::map &getSupportedParams() const; + +private: + DataList _info; + std::map _supported_params_map; +}; + +std::ostream &operator<<(std::ostream &os, const PluginSession &op); + +} // namespace config +} // namespace contrib +} // namespace nncc + +#endif /*__PLUGIN_SESSION_H__ */ diff --git a/contrib/nnc/src/module/plugin/PluginSession.cpp b/contrib/nnc/src/module/plugin/PluginSession.cpp new file mode 100644 index 0000000..e04d423 --- /dev/null +++ b/contrib/nnc/src/module/plugin/PluginSession.cpp @@ -0,0 +1,49 @@ +#include +#include "PluginParam.h" +#include "module/plugin/PluginSession.h" + +namespace nncc +{ +namespace contrib +{ +namespace config +{ + +PluginSession::PluginSession() : _info("info") {} + +void PluginSession::addInfo(const std::string &name, const std::string &value) +{ + _info.createElement(name, value); +} + +const std::string &PluginSession::getInfo(const std::string &name) const +{ + return _info.getElement(name).getValue(); +} + +const DataList &PluginSession::getInfo() const +{ + return _info; +} + +void PluginSession::registerParam(const PluginParam ¶m) +{ + _supported_params_map.emplace(param.getName(), param); +} + +const std::map &PluginSession::getSupportedParams() const { return _supported_params_map; } + +std::ostream &operator<<(std::ostream &os, const PluginSession &session) +{ + os << session.getInfo(); + os << "supported params:" << std::endl; + for (auto &el : session.getSupportedParams()) + { + os << el.second << std::endl; + } + return os; +} + +} // namespace config +} // namespace core +} // namespace nncc -- 2.7.4