AcManager.Controls.UserControls.RequestHandler.ReplaceResponseFilter.IResponseFilter C# (CSharp) Method

IResponseFilter() private method

private IResponseFilter ( Stream dataIn, long &dataInRead, Stream dataOut, long &dataOutWritten ) : FilterStatus
dataIn Stream
dataInRead long
dataOut Stream
dataOutWritten long
return FilterStatus
            FilterStatus IResponseFilter.Filter(Stream dataIn, out long dataInRead, Stream dataOut, out long dataOutWritten) {
                dataOutWritten = 0;

                if (dataIn == null) {
                    dataInRead = 0;
                    return FilterStatus.Done;
                }

                dataInRead = dataIn.Length;
                if (_overflow.Count > 0) {
                    WriteOverflow(dataOut, ref dataOutWritten);
                }
                
                for (var i = 0; i < dataInRead; ++i) {
                    var readByte = (byte)dataIn.ReadByte();
                    if (readByte != _find[_findMatchOffset]) {
                        if (_findMatchOffset > 0) {
                            WriteBytes(_find, _findMatchOffset, dataOut, ref dataOutWritten);
                            _findMatchOffset = 0;
                        }

                        WriteSingleByte(readByte, dataOut, ref dataOutWritten);
                    } else if (++_findMatchOffset == _find.Length) {
                        WriteBytes(_replacement, _replacement.Length, dataOut, ref dataOutWritten);
                        _findMatchOffset = 0;
                    }
                }

                return _overflow.Count > 0 ? FilterStatus.NeedMoreData :
                        _findMatchOffset > 0 ? FilterStatus.NeedMoreData : FilterStatus.Done;
            }

Same methods

RequestHandler.ReplaceResponseFilter::IResponseFilter ( ) : bool