Files
devilutionX/Source/dvlnet/frame_queue.h
T
Gleb MazovetskiyandAnders Jenbo 7e1fea6f76 clang-format all files in {Source,test}/
Also includes a few manual tweaks to comments and newlines for better results.

Co-authored-by: Anders Jenbo <[email protected]>
2021-11-24 23:44:12 +01:00

45 lines
824 B
C++

#pragma once
#include <cstdint>
#include <deque>
#include <exception>
#include <vector>
namespace devilution {
namespace net {
typedef std::vector<unsigned char> buffer_t;
class frame_queue_exception : public std::exception {
public:
const char *what() const throw() override
{
return "Incorrect frame size";
}
};
typedef uint32_t framesize_t;
class frame_queue {
public:
constexpr static framesize_t max_frame_size = 0xFFFF;
private:
framesize_t current_size = 0;
std::deque<buffer_t> buffer_deque;
framesize_t nextsize = 0;
framesize_t Size() const;
buffer_t Read(framesize_t s);
public:
bool PacketReady();
buffer_t ReadPacket();
void Write(buffer_t buf);
static buffer_t MakeFrame(buffer_t packetbuf);
};
} // namespace net
} // namespace devilution