Deskflow 1.24.0.365
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
IEventQueueBuffer.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2025 Deskflow Developers
4 * SPDX-FileCopyrightText: (C) 2012 - 2016 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
11#include <assert.h>
12#include <cstdint>
13
14class Event;
15class EventQueueTimer;
16
18
22{
23public:
24 virtual ~IEventQueueBuffer() = default;
25 enum class Type : uint8_t
26 {
30 };
31
33
34
36
39 virtual void init() = 0;
40
42
46 virtual void waitForEvent(double timeout) = 0;
47
49
57 virtual Type getEvent(Event &event, uint32_t &dataID) = 0;
58
60
66 virtual bool addEvent(uint32_t dataID) = 0;
67
69
71
73
76 virtual bool isEmpty() const = 0;
77
79
84 virtual EventQueueTimer *newTimer(double duration, bool oneShot) const = 0;
85
87
90 virtual void deleteTimer(EventQueueTimer *) const = 0;
91
93};
static fd_set FAR fd_set FAR fd_set FAR const struct timeval FAR * timeout
Definition ArchNetworkWinsock.cpp:40
Definition EventQueueTimer.h:12
Event.
Definition Event.h:29
Event queue buffer interface.
Definition IEventQueueBuffer.h:22
virtual void deleteTimer(EventQueueTimer *) const =0
Destroy a timer object.
virtual Type getEvent(Event &event, uint32_t &dataID)=0
Get the next event.
Type
Definition IEventQueueBuffer.h:26
@ Unknown
No event is available.
Definition IEventQueueBuffer.h:27
@ User
Event is a user event.
Definition IEventQueueBuffer.h:29
@ System
Event is a system event.
Definition IEventQueueBuffer.h:28
virtual ~IEventQueueBuffer()=default
virtual EventQueueTimer * newTimer(double duration, bool oneShot) const =0
Create a timer object.
virtual void init()=0
Initialize.
virtual void waitForEvent(double timeout)=0
Block waiting for an event.
virtual bool addEvent(uint32_t dataID)=0
Post an event.
virtual bool isEmpty() const =0
Check if event queue buffer is empty.