X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;ds=sidebyside;f=src%2Fclient%2FChunkReceiver.hpp;fp=src%2Fclient%2FChunkReceiver.hpp;h=74a03a74318f4fd9b75defb779c1a7d5a5da3fb5;hb=8ae45b6555d55f301f83daf8c1337d332d8305ab;hp=0000000000000000000000000000000000000000;hpb=7fd76e64de47f564117b9e6f73f1482d93842108;p=blank.git diff --git a/src/client/ChunkReceiver.hpp b/src/client/ChunkReceiver.hpp new file mode 100644 index 0000000..74a03a7 --- /dev/null +++ b/src/client/ChunkReceiver.hpp @@ -0,0 +1,44 @@ +#ifndef BLANK_CLIENT_CHUNKRECEIVER_HPP_ +#define BLANK_CLIENT_CHUNKRECEIVER_HPP_ + +#include "../app/IntervalTimer.hpp" +#include "../net/Packet.hpp" + +#include +#include + + +namespace blank { + +class ChunkStore; + +namespace client { + +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