diff options
Diffstat (limited to 'include/libcamera/object.h')
-rw-r--r-- | include/libcamera/object.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/libcamera/object.h b/include/libcamera/object.h index eadd41f9..d61dfb1e 100644 --- a/include/libcamera/object.h +++ b/include/libcamera/object.h @@ -8,26 +8,39 @@ #define __LIBCAMERA_OBJECT_H__ #include <list> +#include <memory> namespace libcamera { +class Message; class SignalBase; template<typename... Args> class Signal; +class Thread; class Object { public: + Object(); virtual ~Object(); + void postMessage(std::unique_ptr<Message> msg); + virtual void message(Message *msg); + + Thread *thread() const { return thread_; } + void moveToThread(Thread *thread); + private: template<typename... Args> friend class Signal; + friend class Thread; void connect(SignalBase *signal); void disconnect(SignalBase *signal); + Thread *thread_; std::list<SignalBase *> signals_; + unsigned int pendingMessages_; }; }; /* namespace libcamera */ |