15 #ifndef hifi_ControlPacket_h
16 #define hifi_ControlPacket_h
20 #include "BasePacket.h"
25 class ControlPacket :
public BasePacket {
28 using ControlBitAndType = uint32_t;
30 enum Type : uint16_t {
37 static std::unique_ptr<ControlPacket> create(Type type, qint64 size = -1);
38 static std::unique_ptr<ControlPacket> fromReceivedPacket(std::unique_ptr<
char[]> data, qint64 size,
39 const SockAddr& senderSockAddr);
41 static int localHeaderSize();
43 static int totalHeaderSize();
45 static int maxPayloadSize();
47 Type getType()
const {
return _type; }
48 void setType(Type type);
51 Q_DISABLE_COPY(ControlPacket)
52 ControlPacket(Type type, qint64 size = -1);
53 ControlPacket(std::unique_ptr<
char[]> data, qint64 size,
const SockAddr& senderSockAddr);
54 ControlPacket(ControlPacket&& other);
56 ControlPacket& operator=(ControlPacket&& other);