SW Task Event Loop Framework v1.0.0
High-performance C++ asynchronous event loop framework with timer management and promise-based programming
Loading...
Searching...
No Matches
Handler.h
Go to the documentation of this file.
1#ifndef HANDLER_H
2#define HANDLER_H
3
4#include <memory>
5#include <cstdint>
6#include "Message.h"
7#include "EventQueue.h"
8#include "SLLooper.h"
9
10namespace swt {
11
45class Handler : public std::enable_shared_from_this<Handler>
46{
47public:
52
57 Handler(std::shared_ptr<SLLooper>& looper);
58
62 virtual ~Handler();
63
69 std::shared_ptr<Message> obtainMessage();
70
77 std::shared_ptr<Message> obtainMessage(int32_t what);
78
85 std::shared_ptr<Message> obtainMessage(int32_t what, int32_t arg1);
86
93 std::shared_ptr<Message> obtainMessage(int32_t what, void* obj);
94
102 std::shared_ptr<Message> obtainMessage(int32_t what, int32_t arg1, int32_t arg2);
103
112 std::shared_ptr<Message> obtainMessage(int32_t what, int32_t arg1, int32_t arg2, void* obj);
113
122 std::shared_ptr<Message> obtainMessage(int32_t what, int32_t arg1, int32_t arg2, int32_t arg3);
123
130 std::shared_ptr<Message> obtainMessage(int32_t what, std::shared_ptr<RefBase> spRef);
131
138 bool sendMessage(const std::shared_ptr<Message>& message);
139
146 bool sendMessageDelayed(const std::shared_ptr<Message>& message, int64_t delayMs);
147
154 bool sendMessageAtTime(const std::shared_ptr<Message>& message, int64_t whenUs);
155
161 bool hasMessages(int32_t what);
162
168 bool removeMessages(int32_t what);
169
176 bool removeMessages(int32_t what, void* obj);
177
183 void dispatchMessage(const std::shared_ptr<Message>& message);
184
189 int64_t uptimeMicros();
190
191public:
197 virtual void handleMessage(const std::shared_ptr<Message>& msg) = 0;
198
199private:
200 std::shared_ptr<EventQueue> mEventQueue;
201 std::shared_ptr<SLLooper> mLooper;
202};
203
204} // namespace swt
205
206#endif // HANDLER_H
Unified event queue supporting messages and functions with timed execution.
Main event loop coordinator for asynchronous task management and timer operations.
Android-style message handler for event-driven programming.
Definition Handler.h:46
bool sendMessage(const std::shared_ptr< Message > &message)
Send message for immediate processing.
Definition Handler.cpp:227
int64_t uptimeMicros()
Get current system uptime in microseconds.
Definition Handler.cpp:382
bool sendMessageDelayed(const std::shared_ptr< Message > &message, int64_t delayMs)
Send message with delay.
Definition Handler.cpp:250
bool sendMessageAtTime(const std::shared_ptr< Message > &message, int64_t whenUs)
Send message at specific time.
Definition Handler.cpp:267
virtual ~Handler()
Virtual destructor.
Definition Handler.cpp:57
virtual void handleMessage(const std::shared_ptr< Message > &msg)=0
Override to handle received messages.
std::shared_ptr< Message > obtainMessage()
Obtain a new empty message.
Definition Handler.cpp:80
bool hasMessages(int32_t what)
Check if message with type code exists in queue.
Definition Handler.cpp:291
Handler()
Default constructor - not associated with any looper.
bool removeMessages(int32_t what)
Remove messages with type code from queue.
Definition Handler.cpp:307
void dispatchMessage(const std::shared_ptr< Message > &message)
Dispatch message to handler (internal use)
Definition Handler.cpp:349
Software Timer namespace containing all timer-related classes.
Definition Awaitable.h:21