Exemplo n.º 1
0
            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);
            }
Exemplo n.º 2
0
            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);
            }
Exemplo n.º 3
0
            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);
            }
Exemplo n.º 4
0
            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);
            }
Exemplo n.º 5
0
            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);
            }
Exemplo n.º 6
0
            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);
            }
Exemplo n.º 8
0
 private void ReturnBufferedData(UTF8BufferedMessageData messageData)
 {
     _bufferedReaderPool.Return(messageData);
 }
Exemplo n.º 9
0
 void ReturnBufferedData(UTF8BufferedMessageData messageData)
 {
     bufferedReaderPool.Return(messageData);
 }
Exemplo n.º 10
0
 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;
 }
Exemplo n.º 11
0
 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;
 }