public override Message ReadMessage(ArraySegment <byte> buffer, BufferManager bufferManager, string contentType) { if (bufferManager == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameof(bufferManager)); } Message message; UTF8BufferedMessageData messageData = TakeBufferedReader(); messageData.Encoding = GetEncodingFromContentType(contentType, _contentEncodingMap); messageData.Open(buffer, bufferManager); RecycledMessageState messageState = messageData.TakeMessageState(); if (messageState == null) { messageState = new RecycledMessageState(); } message = new BufferedMessage(messageData, messageState); message.Properties.Encoder = this; return(message); }
public override Message ReadMessage(ArraySegment <byte> buffer, BufferManager bufferManager, string contentType) { if (bufferManager == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("bufferManager")); } UTF8BufferedMessageData messageData = this.TakeBufferedReader(); messageData.Encoding = TextMessageEncoderFactory.GetEncodingFromContentType(contentType, this.contentEncodingMap); messageData.Open(buffer, bufferManager); RecycledMessageState recycledMessageState = messageData.TakeMessageState(); if (recycledMessageState == null) { recycledMessageState = new RecycledMessageState(); } Message message = new BufferedMessage(messageData, recycledMessageState) { Properties = { Encoder = this } }; if (MessageLogger.LogMessagesAtTransportLevel) { MessageLogger.LogMessage(ref message, MessageLoggingSource.TransportReceive); } return(message); }
public override Message ReadMessage(ArraySegment <byte> buffer, BufferManager bufferManager, string contentType) { if (bufferManager == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException(nameof(bufferManager))); } if (WcfEventSource.Instance.TextMessageDecodingStartIsEnabled()) { WcfEventSource.Instance.TextMessageDecodingStart(); } Message message; UTF8BufferedMessageData messageData = TakeBufferedReader(); messageData.Encoding = GetEncodingFromContentType(contentType, _contentEncodingMap); messageData.Open(buffer, bufferManager); RecycledMessageState messageState = messageData.TakeMessageState(); if (messageState == null) { messageState = new RecycledMessageState(); } message = new BufferedMessage(messageData, messageState); message.Properties.Encoder = this; if (WcfEventSource.Instance.MessageReadByEncoderIsEnabled()) { WcfEventSource.Instance.MessageReadByEncoder( EventTraceActivityHelper.TryExtractActivity(message, true), buffer.Count, this); } if (MessageLogger.LogMessagesAtTransportLevel) { MessageLogger.LogMessage(ref message, MessageLoggingSource.TransportReceive); } return(message); }
private UTF8BufferedMessageData TakeBufferedReader() { if (_bufferedReaderPool == null) { lock (ThisLock) { if (_bufferedReaderPool == null) { _bufferedReaderPool = new SynchronizedPool <UTF8BufferedMessageData>(MaxReadPoolSize); } } } UTF8BufferedMessageData messageData = _bufferedReaderPool.Take(); if (messageData == null) { messageData = new UTF8BufferedMessageData(this, maxPooledXmlReadersPerMessage); } return(messageData); }
private UTF8BufferedMessageData TakeBufferedReader() { if (this.bufferedReaderPool == null) { lock (this.ThisLock) { if (this.bufferedReaderPool == null) { this.bufferedReaderPool = new SynchronizedPool <UTF8BufferedMessageData>(this.maxReadPoolSize); } } } UTF8BufferedMessageData data = this.bufferedReaderPool.Take(); if (data == null) { data = new UTF8BufferedMessageData(this, 2); } return(data); }
private UTF8BufferedMessageData TakeBufferedReader() { if (_bufferedReaderPool == null) { lock (ThisLock) { if (_bufferedReaderPool == null) { _bufferedReaderPool = new SynchronizedPool <UTF8BufferedMessageData>(_maxReadPoolSize); } } } UTF8BufferedMessageData messageData = _bufferedReaderPool.Take(); if (messageData == null) { messageData = new UTF8BufferedMessageData(this, maxPooledXmlReadersPerMessage); if (WcfEventSource.Instance.ReadPoolMissIsEnabled()) { WcfEventSource.Instance.ReadPoolMiss(messageData.GetType().Name); } } return(messageData); }
UTF8BufferedMessageData TakeBufferedReader() { if (bufferedReaderPool == null) { lock (ThisLock) { if (bufferedReaderPool == null) { bufferedReaderPool = new SynchronizedPool <UTF8BufferedMessageData>(maxReadPoolSize); } } } UTF8BufferedMessageData messageData = bufferedReaderPool.Take(); if (messageData == null) { messageData = new UTF8BufferedMessageData(this, maxPooledXmlReadersPerMessage); if (TD.ReadPoolMissIsEnabled()) { TD.ReadPoolMiss(messageData.GetType().Name); } } return(messageData); }
private void ReturnBufferedData(UTF8BufferedMessageData messageData) { _bufferedReaderPool.Return(messageData); }
void ReturnBufferedData(UTF8BufferedMessageData messageData) { bufferedReaderPool.Return(messageData); }
UTF8BufferedMessageData TakeBufferedReader() { if (bufferedReaderPool == null) { lock (ThisLock) { if (bufferedReaderPool == null) { bufferedReaderPool = new SynchronizedPool<UTF8BufferedMessageData>(maxReadPoolSize); } } } UTF8BufferedMessageData messageData = bufferedReaderPool.Take(); if (messageData == null) { messageData = new UTF8BufferedMessageData(this, maxPooledXmlReadersPerMessage); if (TD.ReadPoolMissIsEnabled()) { TD.ReadPoolMiss(messageData.GetType().Name); } } return messageData; }
private UTF8BufferedMessageData TakeBufferedReader() { if (_bufferedReaderPool == null) { lock (ThisLock) { if (_bufferedReaderPool == null) { _bufferedReaderPool = new SynchronizedPool<UTF8BufferedMessageData>(_maxReadPoolSize); } } } UTF8BufferedMessageData messageData = _bufferedReaderPool.Take(); if (messageData == null) { messageData = new UTF8BufferedMessageData(this, maxPooledXmlReadersPerMessage); if (WcfEventSource.Instance.ReadPoolMissIsEnabled()) { WcfEventSource.Instance.ReadPoolMiss(messageData.GetType().Name); } } return messageData; }