diff options
-rw-r--r-- | include/libcamera/bound_method.h | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/include/libcamera/bound_method.h b/include/libcamera/bound_method.h index a1541212..9fd58c69 100644 --- a/include/libcamera/bound_method.h +++ b/include/libcamera/bound_method.h @@ -39,19 +39,6 @@ public: virtual void invokePack(void *pack) = 0; protected: - void activatePack(void *pack, bool deleteMethod); - - void *obj_; - Object *object_; - -private: - ConnectionType connectionType_; -}; - -template<typename... Args> -class BoundMethodArgs : public BoundMethodBase -{ -private: #ifndef __DOXYGEN__ /* * This is a cheap partial implementation of std::integer_sequence<> @@ -71,10 +58,23 @@ private: }; #endif + void activatePack(void *pack, bool deleteMethod); + + void *obj_; + Object *object_; + +private: + ConnectionType connectionType_; +}; + +template<typename... Args> +class BoundMethodArgs : public BoundMethodBase +{ +private: using PackType = std::tuple<typename std::remove_reference<Args>::type...>; template<int... S> - void invokePack(void *pack, sequence<S...>) + void invokePack(void *pack, BoundMethodBase::sequence<S...>) { PackType *args = static_cast<PackType *>(pack); invoke(std::get<S>(*args)...); @@ -87,7 +87,7 @@ public: void invokePack(void *pack) override { - invokePack(pack, typename generator<sizeof...(Args)>::type()); + invokePack(pack, typename BoundMethodBase::generator<sizeof...(Args)>::type()); } virtual void activate(Args... args, bool deleteMethod = false) = 0; |