7#ifndef YARP_OS_IMPL_DISPATCHER_H
8#define YARP_OS_IMPL_DISPATCHER_H
24template <
class T,
class RET>
32 RET (T::*fn)(
int argc,
char* argv[]);
34 Entry(
const char* name,
RET (T::*fn)(
int argc,
char* argv[])) :
46 std::map<std::string, Entry> action;
47 std::vector<std::string> names;
53 action[std::string(name)] =
e;
55 names.push_back(std::string(name));
58 RET dispatch(T* owner,
const char* name,
int argc,
char* argv[])
60 std::string
sname(name);
61 typename std::map<std::string, Entry>::const_iterator
it = action.find(
sname);
62 if (
it != action.end()) {
63 return (owner->*(
it->second.fn))(argc, argv);
const yarp::os::LogComponent & DISPATCHER()
const yarp::os::LogComponent & DISPATCHER()
A mini-server for performing network communication in the background.
Dispatch to named methods based on string input.
std::vector< std::string > getNames()
void add(const char *name, RET(T::*fn)(int argc, char *argv[]))
RET dispatch(T *owner, const char *name, int argc, char *argv[])
#define yCError(component,...)
#define YARP_DECLARE_LOG_COMPONENT(name)
The components from which ports and connections are built.