diff options
Diffstat (limited to 'include/libcamera/bound_method.h')
-rw-r--r-- | include/libcamera/bound_method.h | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/include/libcamera/bound_method.h b/include/libcamera/bound_method.h index 38c44b92..54c40fc5 100644 --- a/include/libcamera/bound_method.h +++ b/include/libcamera/bound_method.h @@ -13,9 +13,6 @@ namespace libcamera { class Object; -template<typename... Args> -class Signal; -class SignalBase; class BoundMethodBase { @@ -28,7 +25,7 @@ public: bool match(T *obj) { return obj == obj_; } bool match(Object *object) { return object == object_; } - void disconnect(SignalBase *signal); + Object *object() const { return object_; } void activatePack(void *pack); virtual void invokePack(void *pack) = 0; @@ -93,6 +90,8 @@ public: BoundMemberMethod(T *obj, Object *object, void (T::*func)(Args...)) : BoundMethodArgs<Args...>(obj, object), func_(func) {} + bool match(void (T::*func)(Args...)) const { return func == func_; } + void activate(Args... args) { if (this->object_) @@ -107,7 +106,6 @@ public: } private: - friend class Signal<Args...>; void (T::*func_)(Args...); }; @@ -118,11 +116,12 @@ public: BoundStaticMethod(void (*func)(Args...)) : BoundMethodArgs<Args...>(nullptr, nullptr), func_(func) {} + bool match(void (*func)(Args...)) const { return func == func_; } + void activate(Args... args) { (*func_)(args...); } void invoke(Args... args) {} private: - friend class Signal<Args...>; void (*func_)(Args...); }; |