Dawn Framework 1.0
Universal data acquisition framework for embedded systems
notify_manager.hxx
1// dawn/include/dawn/io/notify_manager.hxx
2//
3// SPDX-License-Identifier: Apache-2.0
4//
5
6#pragma once
7
8#include <vector>
9
10#include "dawn/io/common.hxx"
11#include "dawn/io/notifier.hxx"
12#include "dawn/porting/config.hxx"
13#ifdef CONFIG_DAWN_IO_NOTIFY_STREAM
14# include "dawn/io/stream_notifier.hxx"
15#endif
16
17namespace dawn
18{
32{
33public:
36
37 int regIO(CIOCommon *io);
38 int start();
39 int stop();
40
41private:
42 struct SNotifierEntry
43 {
44 uint8_t type;
45 int prio;
46
47 union
48 {
49 CIONotifier *poll;
50#ifdef CONFIG_DAWN_IO_NOTIFY_STREAM
51 CStreamNotifier *stream;
52#endif
53 };
54 };
55
56 std::vector<SNotifierEntry> entries;
57
58 CIONotifier *findPoll(int prio);
59};
60
61} // Namespace dawn
Base class for all I/O objects.
Definition common.hxx:27
Manages notifier instances for I/O objects.
I/O notification handler with poll-based event delivery.
Definition notifier.hxx:31
Stream-based I/O notifier with dedicated thread per I/O.
Out-of-tree user-extension hooks for Dawn.
Definition bindable.hxx:13