X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fnet%2FChunkReceiver.hpp;fp=src%2Fnet%2FChunkReceiver.hpp;h=40acc2fbf9d8a3a0837ab9801bc02c5dd46561dd;hb=ae5a7e7d8517fac406a88e9bf98fd3d5bb1728b9;hp=0000000000000000000000000000000000000000;hpb=8e7e042296946ba2aed73b77ab02feb267eb17d4;p=blank.git diff --git a/src/net/ChunkReceiver.hpp b/src/net/ChunkReceiver.hpp new file mode 100644 index 0000000..40acc2f --- /dev/null +++ b/src/net/ChunkReceiver.hpp @@ -0,0 +1,40 @@ +#ifndef BLANK_NET_CHUNKRECEIVER_HPP_ +#define BLANK_NET_CHUNKRECEIVER_HPP_ + +#include "Packet.hpp" +#include "../app/IntervalTimer.hpp" + +#include +#include + + +namespace blank { + +class ChunkStore; +class ChunkTransmission; + +class ChunkReceiver { + +public: + explicit ChunkReceiver(ChunkStore &); + ~ChunkReceiver(); + + void Update(int dt); + + void Handle(const Packet::ChunkBegin &); + void Handle(const Packet::ChunkData &); + +private: + ChunkTransmission &GetTransmission(std::uint32_t id); + void Commit(ChunkTransmission &); + +private: + ChunkStore &store; + std::list transmissions; + IntervalTimer timer; + +}; + +} + +#endif