bool onReturn(Network.ByteInStream stream) { int returnId = stream.ReadInt(); RPCResult result; if (!results.TryGetValue(returnId, out result)) { log.Error("No RPC result with the return index #{0} pending", returnId); return(false); } if (stream.ReadBool()) { Reader reader; if (!readers.TryGetTypeValue(result.Type, out reader)) { return(false); } result.BoxedValue = reader(stream, result.Type); } log.Info("Received result for {0}", result.Name); result.IsDone = true; result.Done(); results.Remove(result.ReturnIndex); return(true); }
public bool OnPacket(byte _, Context context, Network.ByteInStream stream) { if (stream.ReadBool()) { return(onCall(stream)); } else { return(onReturn(stream)); } }