public void distributeChunk(UInt64 id) { //create a response message List <byte> data = new List <byte>(myCache.compressedChunk(id)); TerrainResponseEvent terrainResponse = new TerrainResponseEvent(id, data); Kernel.eventManager.queueEvent(terrainResponse); }
EventManager.EventResult handleTerrainResponse(Event e) { TerrainResponseEvent tr = e as TerrainResponseEvent; if (tr != null) { myServer.send(tr); return(EventManager.EventResult.HANDLED); } return(EventManager.EventResult.IGNORED); }
bool filterSendMessages(Event e, TcpClient client) { if (e is TerrainResponseEvent) { TerrainResponseEvent tr = e as TerrainResponseEvent; HashSet <UInt64> myRequests = myClientInterest[client]; if (myRequests.Contains(tr.chunkId)) { responses++; return(false); } else { return(true); } } return(true); }