public Message Get(Connection connection, bool autoSend) { if (connection == null) throw new ArgumentNullException("connection"); lock (_messages) { var buffer = _count < _minSize || _messages.Count == 0 ? Create() : _messages.Pop(); return Configure(buffer, connection, autoSend); } }
public void Clear() { _connection = null; _writerIndex = Constants.MessageHeaderMaxSize; _readerIndex = Constants.MessageHeaderMaxSize; }
private Message Configure(Message message, Connection connection, bool autoSend) { if (autoSend) { lock (_autoSendMessages) _autoSendMessages.Add(message); } message.Clear(); message.Connection = connection; message.FrameTime = _frameTime; return message; }