Deskflow 1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
StreamBuffer.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd.
4 * SPDX-FileCopyrightText: (C) 2002 Chris Schoeneman
5 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
6 */
7
8#pragma once
9
10#include "base/EventTypes.h"
11
12#include <list>
13#include <vector>
14
16
20{
21public:
22 StreamBuffer() = default;
23 ~StreamBuffer() = default;
24
26
27
29
34 const void *peek(uint32_t n);
35
37
41 void pop(uint32_t n);
42
44
47 void write(const void *data, uint32_t n);
48
50
52
54
57 uint32_t getSize() const;
58
60
61private:
62 static const uint32_t kChunkSize;
63
64 using Chunk = std::vector<uint8_t>;
65 using ChunkList = std::list<Chunk>;
66
67 ChunkList m_chunks;
68 uint32_t m_size = 0;
69 uint32_t m_headUsed = 0;
70};
static int void FAR * data
Definition ArchNetworkWinsock.cpp:34
void pop(uint32_t n)
Discard data.
Definition StreamBuffer.cpp:42
void write(const void *data, uint32_t n)
Write data to buffer.
Definition StreamBuffer.cpp:71
~StreamBuffer()=default
uint32_t getSize() const
Get size of buffer.
Definition StreamBuffer.cpp:117
StreamBuffer()=default
const void * peek(uint32_t n)
Read data without removing from buffer.
Definition StreamBuffer.cpp:17