private byte[] HandlePacket_RemoveElements(byte[] RequestContent) { var RequestContentStream = new MemoryStream(RequestContent); var RequestHeader = RequestContentStream.ReadStruct<RequestHeaderStruct>(); { var RequestEntries = RequestContentStream.ReadStructVectorUntilTheEndOfStream<RequestEntryStruct>(); var Index = ServerManager.ServerIndices[RequestHeader.RankingIndexId]; foreach (var RequestEntry in RequestEntries) { Index.Tree.Remove(Index.GetUserScore(RequestEntry.UserId)); } } return new byte[0]; }
async private Task<byte[]> HandlePacketAsync_RemoveElements(byte[] RequestContent) { var RequestContentStream = new MemoryStream(RequestContent); var RequestHeader = RequestContentStream.ReadStruct<RequestHeaderStruct>(); await EnqueueTaskAsync((uint)RequestHeader.RankingIndexId, () => { var RequestEntries = RequestContentStream.ReadStructVectorUntilTheEndOfStream<RequestEntryStruct>(); var Index = ServerManager.ServerIndices[RequestHeader.RankingIndexId]; foreach (var RequestEntry in RequestEntries) { Index.Tree.Remove(Index.GetUserScore(RequestEntry.UserId)); } }); return new byte[0]; }
private byte[] HandlePacket_SetElements(byte[] RequestContent) { var RequestContentStream = new MemoryStream(RequestContent); var RequestHeader = RequestContentStream.ReadStruct<SetElements_RequestHeaderStruct>(); var RequestEntries = RequestContentStream.ReadStructVectorUntilTheEndOfStream<SetElements_RequestEntryStruct>(); { var Index = ServerManager.ServerIndices[RequestHeader.RankingId]; foreach (var Request in RequestEntries) { Index.UpdateUserScore( UserId: Request.UserId, ScoreTimeStamp: Request.ScoreTimeStamp, ScoreValue: Request.ScoreValue ); } } return new byte[0]; }