Deskflow
1.26.0.418
Keyboard and mouse sharing utility
Toggle main menu visibility
Loading...
Searching...
No Matches
SimpleEventQueueBuffer.h
Go to the documentation of this file.
1
/*
2
* Deskflow -- mouse and keyboard sharing utility
3
* SPDX-FileCopyrightText: (C) 2026 Deskflow Developers
4
* SPDX-FileCopyrightText: (C) 2012 - 2016 Synergy App 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 "
arch/IArchMultithread.h
"
12
#include "
base/IEventQueueBuffer.h
"
13
14
#include <deque>
16
19
class
SimpleEventQueueBuffer
:
public
IEventQueueBuffer
20
{
21
public
:
22
SimpleEventQueueBuffer
();
23
SimpleEventQueueBuffer
(
SimpleEventQueueBuffer
const
&) =
delete
;
24
SimpleEventQueueBuffer
(
SimpleEventQueueBuffer
&&) =
delete
;
25
~SimpleEventQueueBuffer
()
override
;
26
27
SimpleEventQueueBuffer
&
operator=
(
SimpleEventQueueBuffer
const
&) =
delete
;
28
SimpleEventQueueBuffer
&
operator=
(
SimpleEventQueueBuffer
&&) =
delete
;
29
30
// IEventQueueBuffer overrides
31
void
init
()
override
32
{
33
// do nothing
34
}
35
void
waitForEvent
(
double
timeout
)
override
;
36
Type
getEvent
(
Event
&event, uint32_t &dataID)
override
;
37
bool
addEvent
(uint32_t dataID)
override
;
38
bool
isEmpty
()
const override
;
39
40
private
:
41
using
EventDeque = std::deque<uint32_t>;
42
43
ArchMutex
m_queueMutex;
44
ArchCond
m_queueReadyCond;
45
bool
m_queueReady =
false
;
46
EventDeque m_queue;
47
};
timeout
static fd_set FAR fd_set FAR fd_set FAR const struct timeval FAR * timeout
Definition
ArchNetworkWinsock.cpp:41
IArchMultithread.h
ArchMutex
ArchMutexImpl * ArchMutex
Opaque mutex type. An opaque type representing a mutex.
Definition
IArchMultithread.h:40
ArchCond
ArchCondImpl * ArchCond
Opaque condition variable type. An opaque type representing a condition variable.
Definition
IArchMultithread.h:26
IEventQueueBuffer.h
Event
Event.
Definition
Event.h:43
IEventQueueBuffer
Event queue buffer interface.
Definition
IEventQueueBuffer.h:22
IEventQueueBuffer::Type
Type
Definition
IEventQueueBuffer.h:26
SimpleEventQueueBuffer::operator=
SimpleEventQueueBuffer & operator=(SimpleEventQueueBuffer &&)=delete
SimpleEventQueueBuffer::getEvent
Type getEvent(Event &event, uint32_t &dataID) override
Get the next event.
Definition
SimpleEventQueueBuffer.cpp:45
SimpleEventQueueBuffer::addEvent
bool addEvent(uint32_t dataID) override
Post an event.
Definition
SimpleEventQueueBuffer.cpp:57
SimpleEventQueueBuffer::isEmpty
bool isEmpty() const override
Check if event queue buffer is empty.
Definition
SimpleEventQueueBuffer.cpp:68
SimpleEventQueueBuffer::operator=
SimpleEventQueueBuffer & operator=(SimpleEventQueueBuffer const &)=delete
SimpleEventQueueBuffer::waitForEvent
void waitForEvent(double timeout) override
Block waiting for an event.
Definition
SimpleEventQueueBuffer.cpp:29
SimpleEventQueueBuffer::SimpleEventQueueBuffer
SimpleEventQueueBuffer(SimpleEventQueueBuffer const &)=delete
SimpleEventQueueBuffer::SimpleEventQueueBuffer
SimpleEventQueueBuffer()
Definition
SimpleEventQueueBuffer.cpp:17
SimpleEventQueueBuffer::init
void init() override
Initialize.
Definition
SimpleEventQueueBuffer.h:31
SimpleEventQueueBuffer::SimpleEventQueueBuffer
SimpleEventQueueBuffer(SimpleEventQueueBuffer &&)=delete
src
lib
base
SimpleEventQueueBuffer.h
Generated by
1.18.0