70 const std::function<
void(
PropertyMap)>& action) = 0;
100 _registerNotification(name, [action] { action(); });
104 template <
typename Params>
107 _registerNotification(name, [action](
const std::string& param) {
110 throw std::runtime_error(
"from_json failed");
116 template <
typename Params,
typename RetVal>
117 void registerRequest(
const std::string& name,
const std::function<RetVal(Params)>& action)
119 _registerRequest(name, [action](
const std::string& param) {
122 throw std::runtime_error(
"from_json failed");
123 return to_json(action(params));
128 template <
typename RetVal>
131 _registerRequest(name, [action] {
return to_json(action()); });
141 virtual void _registerRequest(
const std::string&,
const RetParamFunc&) {}
142 virtual void _registerRequest(
const std::string&,
const RetFunc&) {}
143 virtual void _registerNotification(
const std::string&,
const ParamFunc&) {}
144 virtual void _registerNotification(
const std::string&,
const VoidFunc&) {}
std::function< std::string(std::string)> RetParamFunc
void registerNotification(const std::string &name, const std::function< void()> &action)
virtual void registerNotification(const RpcParameterDescription &desc, const PropertyMap &input, const std::function< void(PropertyMap)> &action)=0
void registerRequest(const std::string &name, const std::function< RetVal()> &action)
virtual ~ActionInterface()=default
std::function< void(std::string)> ParamFunc
void registerNotification(const std::string &name, const std::function< void(Params)> &action)
virtual void registerRequest(const RpcParameterDescription &desc, const PropertyMap &input, const PropertyMap &output, const std::function< PropertyMap(PropertyMap)> &action)=0
void registerRequest(const std::string &name, const std::function< RetVal(Params)> &action)
virtual void registerNotification(const RpcDescription &desc, const std::function< void()> &action)=0
std::function< void()> VoidFunc
virtual void registerRequest(const RpcDescription &desc, const PropertyMap &output, const std::function< PropertyMap()> &action)=0
std::function< std::string()> RetFunc
std::string to_json(const core::PropertyMap &obj)
bool from_json(T &obj, const std::string &json, PRE preUpdateFunc=[] {}, POST postUpdateFunc=[] {})