Deskflow 1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
OSXEventQueueBuffer.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2025 Stephen Jensen <sjensen313@proton.me>
4 * SPDX-FileCopyrightText: (C) 2012 - 2025 Symless Ltd.
5 * SPDX-FileCopyrightText: (C) 2004 Chris Schoeneman
6 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
7 */
8
9#pragma once
10
12
13#include <condition_variable>
14#include <dispatch/dispatch.h>
15#include <mutex>
16#include <queue>
17
18class IEventQueue;
19
22{
23public:
25 ~OSXEventQueueBuffer() override = default;
26
27 // IEventQueueBuffer overrides
28 void init() override;
29 void waitForEvent(double timeout) override;
30 Type getEvent(Event &event, uint32_t &dataID) override;
31 bool addEvent(uint32_t dataID) override;
32 bool isEmpty() const override;
33 EventQueueTimer *newTimer(double duration, bool oneShot) const override;
34 void deleteTimer(EventQueueTimer *timer) const override;
35
36private:
37 IEventQueue *m_eventQueue;
38
39 mutable std::mutex m_mutex;
40 std::condition_variable m_cond;
41 std::queue<uint32_t> m_dataQueue;
42};
static fd_set FAR fd_set FAR fd_set FAR const struct timeval FAR * timeout
Definition ArchNetworkWinsock.cpp:39
Definition SimpleEventQueueBuffer.cpp:13
Event.
Definition Event.h:27
Event queue buffer interface.
Definition IEventQueueBuffer.h:21
Type
Definition IEventQueueBuffer.h:24
Event queue interface.
Definition IEventQueue.h:32
~OSXEventQueueBuffer() override=default
bool addEvent(uint32_t dataID) override
Post an event.
Definition OSXEventQueueBuffer.cpp:65
void init() override
Initialize.
Definition OSXEventQueueBuffer.cpp:32
EventQueueTimer * newTimer(double duration, bool oneShot) const override
Create a timer object.
Definition OSXEventQueueBuffer.cpp:88
void deleteTimer(EventQueueTimer *timer) const override
Destroy a timer object.
Definition OSXEventQueueBuffer.cpp:93
void waitForEvent(double timeout) override
Block waiting for an event.
Definition OSXEventQueueBuffer.cpp:37
OSXEventQueueBuffer(IEventQueue *eventQueue)
Definition OSXEventQueueBuffer.cpp:27
Type getEvent(Event &event, uint32_t &dataID) override
Get the next event.
Definition OSXEventQueueBuffer.cpp:49
bool isEmpty() const override
Check if event queue buffer is empty.
Definition OSXEventQueueBuffer.cpp:80