namespace blank {
class ChunkStore;
+class WorldSave;
namespace client {
class ChunkTransmission;
+class Client;
class ChunkReceiver {
public:
- explicit ChunkReceiver(ChunkStore &);
+ ChunkReceiver(Client &, ChunkStore &, const WorldSave &);
~ChunkReceiver();
void Update(int dt);
+ int ToLoad() const noexcept;
+
+ void LoadOne();
+ void LoadN(std::size_t n);
+
+ void StoreN(std::size_t n);
+
void Handle(const Packet::ChunkBegin &);
void Handle(const Packet::ChunkData &);
ChunkTransmission &GetTransmission(std::uint32_t id);
void Commit(ChunkTransmission &);
+ void ReRequest(ChunkTransmission &);
+
private:
+ Client &client;
ChunkStore &store;
+ const WorldSave &save;
std::list<ChunkTransmission> transmissions;
- IntervalTimer timer;
+ CoarseTimer timer;
};