Deskflow
1.26.0.418
Keyboard and mouse sharing utility
Toggle main menu visibility
Loading...
Searching...
No Matches
PacketStreamFilter.h
Go to the documentation of this file.
1
/*
2
* Deskflow -- mouse and keyboard sharing utility
3
* SPDX-FileCopyrightText: (C) 2012 - 2016 Synergy App Ltd
4
* SPDX-FileCopyrightText: (C) 2004 Chris Schoeneman
5
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
6
*/
7
8
#pragma once
9
10
#include "
io/StreamBuffer.h
"
11
#include "
io/StreamFilter.h
"
12
13
#include <mutex>
14
15
class
IEventQueue
;
16
18
21
class
PacketStreamFilter
:
public
StreamFilter
22
{
23
public
:
24
PacketStreamFilter
(
IEventQueue
*events,
deskflow::IStream
*stream,
bool
adoptStream =
true
);
25
~PacketStreamFilter
()
override
=
default
;
26
27
// IStream overrides
28
void
close
()
override
;
29
uint32_t
read
(
void
*buffer, uint32_t n)
override
;
30
void
write
(
const
void
*buffer, uint32_t n)
override
;
31
void
shutdownInput
()
override
;
32
bool
isReady
()
const override
;
33
uint32_t
getSize
()
const override
;
34
35
protected
:
36
// StreamFilter overrides
37
void
filterEvent
(
const
Event
&)
override
;
38
39
private
:
40
bool
isReadyNoLock()
const
;
41
bool
readPacketSize();
42
bool
readMore();
43
44
private
:
45
mutable
std::mutex m_mutex;
46
uint32_t m_size = 0;
47
StreamBuffer
m_buffer;
48
bool
m_inputShutdown =
false
;
49
IEventQueue
*m_events =
nullptr
;
50
};
StreamBuffer.h
StreamFilter.h
Event
Event.
Definition
Event.h:43
IEventQueue
Event queue interface.
Definition
IEventQueue.h:29
PacketStreamFilter::shutdownInput
void shutdownInput() override
Shutdown input.
Definition
PacketStreamFilter.cpp:83
PacketStreamFilter::filterEvent
void filterEvent(const Event &) override
Handle events from source stream.
Definition
PacketStreamFilter.cpp:155
PacketStreamFilter::getSize
uint32_t getSize() const override
Get bytes available to read.
Definition
PacketStreamFilter.cpp:97
PacketStreamFilter::read
uint32_t read(void *buffer, uint32_t n) override
Read from stream.
Definition
PacketStreamFilter.cpp:33
PacketStreamFilter::close
void close() override
Close the stream.
Definition
PacketStreamFilter.cpp:25
PacketStreamFilter::isReady
bool isReady() const override
Test if read() will succeed.
Definition
PacketStreamFilter.cpp:91
PacketStreamFilter::PacketStreamFilter
PacketStreamFilter(IEventQueue *events, deskflow::IStream *stream, bool adoptStream=true)
Definition
PacketStreamFilter.cpp:18
PacketStreamFilter::write
void write(const void *buffer, uint32_t n) override
Write to stream.
Definition
PacketStreamFilter.cpp:69
PacketStreamFilter::~PacketStreamFilter
~PacketStreamFilter() override=default
StreamBuffer
FIFO of bytes.
Definition
StreamBuffer.h:19
StreamFilter::StreamFilter
StreamFilter(IEventQueue *events, deskflow::IStream *stream, bool adoptStream=true)
Definition
StreamFilter.cpp:16
deskflow::IStream
Bidirectional stream interface.
Definition
IStream.h:22
src
lib
deskflow
PacketStreamFilter.h
Generated by
1.18.0