public override void WriteTo(byte[] buf, ref int i) { var stream = new BitDataOutputStream(buf, i); _innerMessage.WriteTo(stream); i = stream.i; }
protected override void Send(Message message) // main thread { lock (_sendingMsgCache) { var copy = Message.New(message.MessageType); var read = new BitDataInputStream(_exchange); var write = new BitDataOutputStream(_exchange); message.WriteTo(write); copy.ReadFrom(read); _sendingMsgCache.Enqueue(copy); Monitor.Pulse(_sendingMsgCache); } }