public override Message ReadMessage(ArraySegment <byte> buffer, BufferManager bufferManager, string contentType) { if (bufferManager == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("bufferManager"); } if (contentType == this.ContentType) { contentType = null; } MtomBufferedMessageData messageData = this.TakeBufferedReader(); messageData.ContentType = contentType; 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.ThrowHelperArgumentNull("bufferManager"); } if (contentType == this.ContentType) { contentType = null; } if (TD.MtomMessageDecodingStartIsEnabled()) { TD.MtomMessageDecodingStart(); } MtomBufferedMessageData messageData = TakeBufferedReader(); messageData.ContentType = contentType; messageData.Open(buffer, bufferManager); RecycledMessageState messageState = messageData.TakeMessageState(); if (messageState == null) { messageState = new RecycledMessageState(); } Message message = new BufferedMessage(messageData, messageState); message.Properties.Encoder = this; if (MessageLogger.LogMessagesAtTransportLevel) { MessageLogger.LogMessage(ref message, MessageLoggingSource.TransportReceive); } if (TD.MessageReadByEncoderIsEnabled() && buffer != null) { TD.MessageReadByEncoder( EventTraceActivityHelper.TryExtractActivity(message, true), buffer.Count, this); } return(message); }
private MtomBufferedMessageData TakeBufferedReader() { if (this.bufferedReaderPool == null) { lock (this.thisLock) { if (this.bufferedReaderPool == null) { this.bufferedReaderPool = new SynchronizedPool <MtomBufferedMessageData>(this.maxReadPoolSize); } } } MtomBufferedMessageData data = this.bufferedReaderPool.Take(); if (data == null) { data = new MtomBufferedMessageData(this, 2); } return(data); }
MtomBufferedMessageData TakeBufferedReader() { if (bufferedReaderPool == null) { lock (thisLock) { if (bufferedReaderPool == null) { bufferedReaderPool = new SynchronizedPool <MtomBufferedMessageData>(maxReadPoolSize); } } } MtomBufferedMessageData messageData = bufferedReaderPool.Take(); if (messageData == null) { messageData = new MtomBufferedMessageData(this, maxPooledXmlReadersPerMessage); if (TD.ReadPoolMissIsEnabled()) { TD.ReadPoolMiss(messageData.GetType().Name); } } return(messageData); }
void ReturnBufferedData(MtomBufferedMessageData messageData) { bufferedReaderPool.Return(messageData); }
private void ReturnBufferedData(MtomBufferedMessageData messageData) { this.bufferedReaderPool.Return(messageData); }
MtomBufferedMessageData TakeBufferedReader() { if (bufferedReaderPool == null) { lock (thisLock) { if (bufferedReaderPool == null) { bufferedReaderPool = new SynchronizedPool<MtomBufferedMessageData>(maxReadPoolSize); } } } MtomBufferedMessageData messageData = bufferedReaderPool.Take(); if (messageData == null) { messageData = new MtomBufferedMessageData(this, maxPooledXmlReadersPerMessage); if (TD.ReadPoolMissIsEnabled()) { TD.ReadPoolMiss(messageData.GetType().Name); } } return messageData; }
private MtomBufferedMessageData TakeBufferedReader() { if (this.bufferedReaderPool == null) { lock (this.thisLock) { if (this.bufferedReaderPool == null) { this.bufferedReaderPool = new SynchronizedPool<MtomBufferedMessageData>(this.maxReadPoolSize); } } } MtomBufferedMessageData data = this.bufferedReaderPool.Take(); if (data == null) { data = new MtomBufferedMessageData(this, 2); } return data; }