diff --git a/libs/main/http_server/pihttpserver.h b/libs/main/http_server/pihttpserver.h index 3c755023..0c3f82b4 100644 --- a/libs/main/http_server/pihttpserver.h +++ b/libs/main/http_server/pihttpserver.h @@ -13,7 +13,16 @@ public: using RequestFunction = std::function; void registerPath(const PIString & path, PIHTTP::Method method, RequestFunction functor); + template + void + registerPath(const PIString & path, PIHTTP::Method method, T * o, PIHTTP::MessageMutable (T::*function)(const PIHTTP::MessageConst &)) { + registerPath(path, method, [o, function](const PIHTTP::MessageConst & m) { return (o->*function)(m); }); + } void registerUnhandled(RequestFunction functor); + template + void registerUnhandled(T * o, PIHTTP::MessageMutable (T::*function)(const PIHTTP::MessageConst &)) { + registerUnhandled([o, function](const PIHTTP::MessageConst & m) { return (o->*function)(m); }); + } void unregisterPath(const PIString & path, PIHTTP::Method method); void unregisterPath(const PIString & path);