Deskflow 1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
ProtocolUtil.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#include "io/XIO.h"
12
13#include <stdarg.h>
14#include <vector>
15
16namespace deskflow {
17class IStream;
18}
19
21
26{
27public:
29
46 static void writef(deskflow::IStream *, const char *fmt, ...);
47
49
64 static bool readf(deskflow::IStream *, const char *fmt, ...);
65
66private:
67 static void vwritef(deskflow::IStream *, const char *fmt, uint32_t size, va_list);
68 static void vreadf(deskflow::IStream *, const char *fmt, va_list);
69
70 static uint32_t getLength(const char *fmt, va_list);
71 static void writef(std::vector<uint8_t> &, const char *fmt, va_list);
72 static uint32_t eatLength(const char **fmt);
73 static void read(deskflow::IStream *, void *, uint32_t);
74
78 static uint8_t read1ByteInt(deskflow::IStream *stream);
79 static uint16_t read2BytesInt(deskflow::IStream *stream);
80 static uint32_t read4BytesInt(deskflow::IStream *stream);
81
85 static void readVector1ByteInt(deskflow::IStream *, std::vector<uint8_t> &);
86 static void readVector2BytesInt(deskflow::IStream *, std::vector<uint16_t> &);
87 static void readVector4BytesInt(deskflow::IStream *, std::vector<uint32_t> &);
88 static uint32_t readVectorSize(deskflow::IStream *stream);
89
93 static void readBytes(deskflow::IStream *, uint32_t, std::string *);
94};
95
97
101class XIOReadMismatch : public XIO
102{
103public:
104 // XBase overrides
105 std::string getWhat() const throw() override;
106};
Deskflow protocol utilities.
Definition ProtocolUtil.h:26
static void writef(deskflow::IStream *, const char *fmt,...)
Write formatted data.
Definition ProtocolUtil.cpp:70
static bool readf(deskflow::IStream *, const char *fmt,...)
Read formatted data.
Definition ProtocolUtil.cpp:85
Mismatched read exception.
Definition ProtocolUtil.h:102
std::string getWhat() const override
Get a human readable string describing the exception.
Definition ProtocolUtil.cpp:571
The XIO class Generic i/o exception class.
Definition XIO.h:16
Bidirectional stream interface.
Definition IStream.h:24
Definition EventTypes.h:11