summaryrefslogtreecommitdiff
path: root/include/libcamera/base/event_dispatcher.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/libcamera/base/event_dispatcher.h')
-rw-r--r--include/libcamera/base/event_dispatcher.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/include/libcamera/base/event_dispatcher.h b/include/libcamera/base/event_dispatcher.h
new file mode 100644
index 00000000..045df27f
--- /dev/null
+++ b/include/libcamera/base/event_dispatcher.h
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * Copyright (C) 2019, Google Inc.
+ *
+ * event_dispatcher.h - Event dispatcher
+ */
+#ifndef __LIBCAMERA_BASE_EVENT_DISPATCHER_H__
+#define __LIBCAMERA_BASE_EVENT_DISPATCHER_H__
+
+#include <vector>
+
+namespace libcamera {
+
+class EventNotifier;
+class Timer;
+
+class EventDispatcher
+{
+public:
+ virtual ~EventDispatcher();
+
+ virtual void registerEventNotifier(EventNotifier *notifier) = 0;
+ virtual void unregisterEventNotifier(EventNotifier *notifier) = 0;
+
+ virtual void registerTimer(Timer *timer) = 0;
+ virtual void unregisterTimer(Timer *timer) = 0;
+
+ virtual void processEvents() = 0;
+
+ virtual void interrupt() = 0;
+};
+
+} /* namespace libcamera */
+
+#endif /* __LIBCAMERA_BASE_EVENT_DISPATCHER_H__ */