Deskflow
1.26.0.418
Keyboard and mouse sharing utility
Toggle main menu visibility
Loading...
Searching...
No Matches
ClipboardChunk.h
Go to the documentation of this file.
1
/*
2
* Deskflow -- mouse and keyboard sharing utility
3
* SPDX-FileCopyrightText: (C) 2015 - 2016 Synergy App Ltd
4
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
5
*/
6
7
#pragma once
8
9
#include "
deskflow/Chunk.h
"
10
#include "
deskflow/ClipboardTypes.h
"
11
#include "
deskflow/ProtocolTypes.h
"
12
13
#include <cstddef>
14
#include <string>
15
16
constexpr
static
auto
s_clipboardChunkMetaSize
= 7;
17
18
namespace
deskflow
{
19
class
IStream;
20
}
21
22
struct
ClipboardChunkAssemblyState
23
{
24
size_t
expectedSize
= 0;
25
bool
active
=
false
;
26
};
27
28
class
ClipboardChunk
:
public
Chunk
29
{
30
public
:
31
explicit
ClipboardChunk
(
size_t
size);
32
33
static
ClipboardChunk
*
start
(
ClipboardID
id
, uint32_t sequence,
const
std::string &size);
34
static
ClipboardChunk
*
data
(
ClipboardID
id
, uint32_t sequence,
const
std::string &
data
);
35
static
ClipboardChunk
*
end
(
ClipboardID
id
, uint32_t sequence);
36
37
static
TransferState
assemble
(
38
deskflow::IStream
*stream, std::string &dataCached,
ClipboardID
&
id
, uint32_t &sequence,
39
ClipboardChunkAssemblyState
&state,
size_t
maxDataSize
40
);
41
42
static
void
send
(
deskflow::IStream
*stream,
void
*
data
);
43
44
static
size_t
getExpectedSize
(
const
ClipboardChunkAssemblyState
&state)
45
{
46
return
state.
expectedSize
;
47
}
48
};
Chunk.h
s_clipboardChunkMetaSize
static constexpr auto s_clipboardChunkMetaSize
Definition
ClipboardChunk.h:16
ClipboardTypes.h
ClipboardID
uint8_t ClipboardID
Clipboard ID.
Definition
ClipboardTypes.h:16
ProtocolTypes.h
Deskflow Network Protocol Specification and Implementation.
Chunk::Chunk
Chunk(size_t size)
Definition
Chunk.cpp:9
ClipboardChunk::start
static ClipboardChunk * start(ClipboardID id, uint32_t sequence, const std::string &size)
Definition
ClipboardChunk.cpp:37
ClipboardChunk::send
static void send(deskflow::IStream *stream, void *data)
Definition
ClipboardChunk.cpp:164
ClipboardChunk::end
static ClipboardChunk * end(ClipboardID id, uint32_t sequence)
Definition
ClipboardChunk.cpp:67
ClipboardChunk::assemble
static TransferState assemble(deskflow::IStream *stream, std::string &dataCached, ClipboardID &id, uint32_t &sequence, ClipboardChunkAssemblyState &state, size_t maxDataSize)
Definition
ClipboardChunk.cpp:79
ClipboardChunk::getExpectedSize
static size_t getExpectedSize(const ClipboardChunkAssemblyState &state)
Definition
ClipboardChunk.h:44
ClipboardChunk::ClipboardChunk
ClipboardChunk(size_t size)
Definition
ClipboardChunk.cpp:32
ClipboardChunk::data
static ClipboardChunk * data(ClipboardID id, uint32_t sequence, const std::string &data)
Definition
ClipboardChunk.cpp:52
deskflow::IStream
Bidirectional stream interface.
Definition
IStream.h:22
TransferState
TransferState
Data reception state codes.
Definition
ProtocolTypes.h:174
deskflow
Definition
DaemonApp.h:18
ClipboardChunkAssemblyState
Definition
ClipboardChunk.h:23
ClipboardChunkAssemblyState::active
bool active
Definition
ClipboardChunk.h:25
ClipboardChunkAssemblyState::expectedSize
size_t expectedSize
Definition
ClipboardChunk.h:24
src
lib
deskflow
ClipboardChunk.h
Generated by
1.18.0