PacketProtocol.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef PROTOCOLS__BIT_TORRENT__PACKETS__PACKET_PROTOCOL_H
00024 #define PROTOCOLS__BIT_TORRENT__PACKETS__PACKET_PROTOCOL_H
00025
00026 #include "Imports.h"
00027 #include "Packet.h"
00028
00029 namespace Protocols {
00030 namespace BitTorrent {
00031 namespace Packets {
00032
00034
00037 class PacketProtocol : public Generics::PacketProtocol
00038 {
00039 public:
00040 enum Constants
00041 {
00042 HeaderLength = 4
00043 };
00044
00045 int headerLength() const;
00046 int payloadLength (const QByteArray &header) const;
00047 GenericsPacket createPacket (const QByteArray &header,
00048 const QByteArray &payload) const;
00049
00050 private:
00051 static Packet getPacketFromTypeByte (uchar byte);
00052 static Packet parsedOrBadPacket (Packet &packet,
00053 const QByteArray &rawHeader,
00054 const QByteArray &rawPayload);
00055 };
00056
00057 }
00058 }
00059 }
00060
00061 #endif // PROTOCOLS__BIT_TORRENT__PACKETS__PACKET_PROTOCOL_H