summaryrefslogtreecommitdiff
path: root/src/libcamera/include/message.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera/include/message.h')
-rw-r--r--src/libcamera/include/message.h17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/libcamera/include/message.h b/src/libcamera/include/message.h
index b4670c0e..92717e31 100644
--- a/src/libcamera/include/message.h
+++ b/src/libcamera/include/message.h
@@ -9,6 +9,8 @@
#include <atomic>
+#include <libcamera/bound_method.h>
+
namespace libcamera {
class BoundMethodBase;
@@ -20,7 +22,7 @@ class Message
public:
enum Type {
None = 0,
- SignalMessage = 1,
+ InvokeMessage = 1,
UserMessage = 1000,
};
@@ -41,16 +43,19 @@ private:
static std::atomic_uint nextUserType_;
};
-class SignalMessage : public Message
+class InvokeMessage : public Message
{
public:
- SignalMessage(BoundMethodBase *method, void *pack)
- : Message(Message::SignalMessage), method_(method), pack_(pack)
- {
- }
+ InvokeMessage(BoundMethodBase *method, void *pack,
+ bool deleteMethod = false);
+ ~InvokeMessage();
+
+ void invoke();
+private:
BoundMethodBase *method_;
void *pack_;
+ bool deleteMethod_;
};
} /* namespace libcamera */