private static async Task <Success> Process(IEnumerable <byte> message, ulong channel) { await Task.Delay(1); if (message.Any()) { if (message.First() == PongData.DefinedTagId) { var pong = ILTag.DeserializeFrom(message.ToArray()) as Payload <PongData>; Console.WriteLine($@"[{channel}] {pong}"); return(Success.Exit); } } return(Success.Exit); }
public static void Main(string[] args) { Console.WriteLine("HiringTest!"); ILTag.RegisterDeserializersFrom(TagDeserializersProvider.Instance); if (args.Length > 0 && args[0].Equals("server", StringComparison.OrdinalIgnoreCase)) { using var server = new Server(); server.Run(); } else { using var client = new Client(); client.Run(); } Console.WriteLine("-- Done!"); }
public byte[] ToMessage(ILTag payload) { var payloadBytes = payload.EncodedBytes; return(MessageTag.AsILInt().Append(((ulong)payloadBytes.Length).AsILInt()).Append(payloadBytes)); }
public static Stream EncodeTag(this Stream s, ILTag tag) => tag == null?s.EncodeNull() : tag.SerializeIntoAsync(s).Result;