int ForEachByteAsc0(int index, int length, ByteProcessor processor)
        {
            if (processor == null)
            {
                throw new ArgumentNullException(nameof(processor));
            }

            if (length == 0)
            {
                return(-1);
            }

            int endIndex = index + length;
            int i        = index;

            do
            {
                if (processor.Process(this._GetByte(i)))
                {
                    i++;
                }
                else
                {
                    return(i);
                }
            }while (i < endIndex);

            return(-1);
        }
        int ForEachByteDesc0(int index, int length, ByteProcessor processor)
        {
            if (processor == null)
            {
                throw new NullReferenceException("processor");
            }

            if (length == 0)
            {
                return(-1);
            }

            int i = index + length - 1;

            do
            {
                if (processor.Process(this._GetByte(i)))
                {
                    i--;
                }
                else
                {
                    return(i);
                }
            }while (i >= index);

            return(-1);
        }
        public int ForEachByteDesc(ByteProcessor processor)
        {
            int index  = this.ReaderIndex;
            int length = this.WriterIndex - index;

            this.EnsureAccessible();

            return(this.ForEachByteDesc0(index, length, processor));
        }
Exemple #4
0
        public override int ForEachByteDesc(int index, int length, ByteProcessor processor)
        {
            this.CheckIndex0(index, length);
            int ret = this.Unwrap().ForEachByteDesc(this.Idx(index), length, processor);

            if (ret < this.adjustment)
            {
                return(-1);
            }
            return(ret - this.adjustment);
        }
Exemple #5
0
        int ForEachByteDesc0(int rStart, int rEnd, ByteProcessor processor)
        {
            for (; rStart >= rEnd; --rStart)
            {
                if (!processor.Process(this._GetByte(rStart)))
                {
                    return(rStart);
                }
            }

            return(-1);
        }
Exemple #6
0
        int ForEachByteAsc0(int start, int end, ByteProcessor processor)
        {
            for (; start < end; ++start)
            {
                if (!processor.Process(this._GetByte(start)))
                {
                    return(start);
                }
            }

            return(-1);
        }
        public JapaneseCharDecoder(TerminalConnection con)
        {
            _jisbuf     = new MemoryStream(0x1000);
            _state      = State.Normal;
            _connection = con;
            _encoding   = con.Param.EncodingProfile;

            _iso2022jpByteProcessor = new ByteProcessor(this.ProcessByteAsISO2022JP);
            _DECLineByteProcessor   = new ByteProcessor(this.ProcessByteAsDECLine);
            _currentByteProcessor   = null;
            _G0ByteProcessor        = null;
            _G1ByteProcessor        = null;
        }
Exemple #8
0
        private void ChangeProcessor(ByteProcessor newprocessor)
        {
            if (_currentByteProcessor == _iso2022jpByteProcessor)
            {
                FlushJISBuffer();
            }

            if (newprocessor == _iso2022jpByteProcessor)
            {
                InitJISBuffer();
            }

            _currentByteProcessor = newprocessor;
            _state = State.Normal;
        }
        int ForEachByteAsc0(int index, int length, ByteProcessor processor)
        {
            if (processor == null)
            {
                throw new NullReferenceException("processor");
            }

            if (length == 0)
            {
                return(-1);
            }

            int endIndex = index + length;
            int i        = index;

            try
            {
                do
                {
                    if (processor.Process(this._GetByte(i)))
                    {
                        i++;
                    }
                    else
                    {
                        return(i);
                    }
                } while (i < endIndex);
            }
            catch
            {
                throw;
            }

            return(-1);
        }
Exemple #10
0
 public override int ForEachByteDesc(ByteProcessor processor) => this.wrapped.ForEachByteDesc(processor);
Exemple #11
0
 public override int ForEachByte(int index, int length, ByteProcessor processor) => this.wrapped.ForEachByte(index, length, processor);
        private void ProcessByte(byte b)
        {
            if (_terminal.State == ProcessCharResult.Escaping)
            {
                _terminal.ProcessChar((char)b);
            }
            else
            {
                if (_state == State.Normal && !IsControlChar(b) && _encoding.IsInterestingByte(b))
                {
                    PutMBCSByte(b);
                }
                else
                {
                    switch (_state)
                    {
                    case State.Normal:
                        if (b == 0x1B)                              //ESC
                        {
                            _state = State.ESC;
                        }
                        else if (b == 14)                              //SO
                        {
                            ChangeProcessor(_G1ByteProcessor);
                        }
                        else if (b == 15)                              //SI
                        {
                            ChangeProcessor(_G0ByteProcessor);
                        }
                        else
                        {
                            ConsumeByte(b);
                        }
                        break;

                    case State.ESC:
                        if (b == (byte)'$')
                        {
                            _state = State.ESC_DOLLAR;
                        }
                        else if (b == (byte)'(')
                        {
                            _state = State.ESC_BRACKET;
                        }
                        else if (b == (byte)')')
                        {
                            _state = State.ESC_ENDBRACKET;
                        }
                        else
                        {
                            ConsumeByte(0x1B);
                            ConsumeByte(b);
                            _state = State.Normal;
                        }
                        break;

                    case State.ESC_BRACKET:
                        if (b == (byte)'0')
                        {
                            _G0ByteProcessor = _DECLineByteProcessor;
                        }
                        else if (b == (byte)'B' || b == (byte)'J' || b == (byte)'~')                          //!!lessでssh2architecture.txtを見ていたら来た。詳細はまだ調べていない。
                        {
                            _G0ByteProcessor = null;
                        }
                        else
                        {
                            _terminal.UnsupportedCharSetDetected((char)b);
                        }
                        ChangeProcessor(_G0ByteProcessor);
                        break;

                    case State.ESC_ENDBRACKET:
                        if (b == (byte)'0')
                        {
                            _G1ByteProcessor = _DECLineByteProcessor;
                        }
                        else if (b == (byte)'B' || b == (byte)'J' || b == (byte)'~')                          //!!lessでssh2architecture.txtを見ていたら来た。詳細はまだ調べていない。
                        {
                            _G1ByteProcessor = null;
                        }
                        _state = State.Normal;
                        break;

                    case State.ESC_DOLLAR:
                        if (b == (byte)'B' || b == (byte)'@')
                        {
                            ChangeProcessor(_iso2022jpByteProcessor);
                        }
                        else
                        {
                            _terminal.ProcessChar((char)0x1B);
                            _terminal.ProcessChar('$');
                            _terminal.ProcessChar((char)b);
                            _state = State.Normal;
                        }
                        break;

                    default:
                        Debug.Assert(false, "unexpected state transition");
                        break;
                    }
                }
            }
        }
Exemple #13
0
 public virtual int ForEachByte(int index, int length, ByteProcessor processor)
 {
     this.CheckIndex(index, length);
     return(this.ForEachByteAsc0(index, index + length, processor));
 }
 public int ForEachByte(int index, int length, ByteProcessor processor) => this.buf.ForEachByte(index, length, processor);
Exemple #15
0
 public virtual int ForEachByteDesc(int index, int length, ByteProcessor processor) => this.Buf.ForEachByteDesc(index, length, processor);
        public int ForEachByteDesc(int index, int length, ByteProcessor processor)
        {
            this.CheckIndex(index, length);

            return(this.ForEachByteDesc0(index, length, processor));
        }
Exemple #17
0
        public JapaneseCharDecoder(TerminalConnection con)
        {
            _jisbuf = new MemoryStream(0x1000);
            _state = State.Normal;
            _connection = con;
            _encoding = con.Param.EncodingProfile;

            _iso2022jpByteProcessor   = new ByteProcessor(this.ProcessByteAsISO2022JP);
            _DECLineByteProcessor     = new ByteProcessor(this.ProcessByteAsDECLine);
            _currentByteProcessor = null;
            _G0ByteProcessor = null;
            _G1ByteProcessor = null;
        }
Exemple #18
0
 private void ProcessByte(byte b)
 {
     if(_terminal.State==ProcessCharResult.Escaping)
         _terminal.ProcessChar((char)b);
     else {
         if(_state==State.Normal && !IsControlChar(b) && _encoding.IsInterestingByte(b)) {
             PutMBCSByte(b);
         }
         else {
             switch(_state) {
                 case State.Normal:
                     if(b==0x1B) //ESC
                         _state = State.ESC;
                     else if(b==14) //SO
                         ChangeProcessor(_G1ByteProcessor);
                     else if(b==15) //SI
                         ChangeProcessor(_G0ByteProcessor);
                     else
                         ConsumeByte(b);
                     break;
                 case State.ESC:
                     if(b==(byte)'$')
                         _state = State.ESC_DOLLAR;
                     else if(b==(byte)'(')
                         _state=State.ESC_BRACKET;
                     else if(b==(byte)')')
                         _state=State.ESC_ENDBRACKET;
                     else {
                         ConsumeByte(0x1B);
                         ConsumeByte(b);
                         _state = State.Normal;
                     }
                     break;
                 case State.ESC_BRACKET:
                     if(b==(byte)'0')
                         _G0ByteProcessor = _DECLineByteProcessor;
                     else if(b==(byte)'B' || b==(byte)'J' || b==(byte)'~') //!!less��ssh2architecture.txt����Ă����痈���B�ڍׂ͂܂����ׂĂ��Ȃ��B
                         _G0ByteProcessor = null;
                     else
                         _terminal.UnsupportedCharSetDetected((char)b);
                     ChangeProcessor(_G0ByteProcessor);
                     break;
                 case State.ESC_ENDBRACKET:
                     if(b==(byte)'0')
                         _G1ByteProcessor = _DECLineByteProcessor;
                     else if(b==(byte)'B' || b==(byte)'J' || b==(byte)'~') //!!less��ssh2architecture.txt����Ă����痈���B�ڍׂ͂܂����ׂĂ��Ȃ��B
                         _G1ByteProcessor = null;
                     _state = State.Normal;
                     break;
                 case State.ESC_DOLLAR:
                     if(b==(byte)'B' || b==(byte)'@') {
                         ChangeProcessor(_iso2022jpByteProcessor);
                     }
                     else {
                         _terminal.ProcessChar((char)0x1B);
                         _terminal.ProcessChar('$');
                         _terminal.ProcessChar((char)b);
                         _state = State.Normal;
                     }
                     break;
                 default:
                     Debug.Assert(false, "unexpected state transition");
                     break;
             }
         }
     }
 }
 public override int ForEachByte(ByteProcessor processor)
 {
     RecordLeakNonRefCountingOperation(this.Leak);
     return(base.ForEachByte(processor));
 }
Exemple #20
0
 public int ForEachByteDesc(int index, int length, ByteProcessor processor)
 {
     return(this.buf.ForEachByteDesc(index, length, processor));
 }
Exemple #21
0
 public int ForEachByteDesc(ByteProcessor processor)
 {
     return(this.buf.ForEachByteDesc(processor));
 }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: @Override public <T> T read(com.google.common.io.ByteProcessor<T> processor) throws java.io.IOException
        public override T read <T>(ByteProcessor <T> processor)
        {
            processor.processBytes(array, 0, array.Length);
            return(processor.Result);
        }
 public int ForEachByteDesc(int index, int length, ByteProcessor processor) => this.Buf.ForEachByteDesc(processor);
Exemple #24
0
 public int ForEachByteDesc(ByteProcessor processor)
 {
     return(-1);
 }
 public int ForEachByteDesc(ByteProcessor processor) => this.buf.ForEachByteDesc(processor);
 public override int ForEachByteDesc(int index, int length, ByteProcessor processor)
 {
     RecordLeakNonRefCountingOperation(this.Leak);
     return(base.ForEachByteDesc(index, length, processor));
 }
Exemple #27
0
 public virtual int ForEachByteDesc(ByteProcessor processor)
 {
     this.EnsureAccessible();
     return(this.ForEachByteDesc0(this.writerIndex - 1, this.readerIndex, processor));
 }
Exemple #28
0
        private void ChangeProcessor(ByteProcessor newprocessor)
        {
            //�����̂�‚�����΃��Z�b�g
            if(_currentByteProcessor==_iso2022jpByteProcessor) {
                FlushJISBuffer();
            }

            if(newprocessor==_iso2022jpByteProcessor) {
                InitJISBuffer();
            }

            _currentByteProcessor = newprocessor;
            _state = State.Normal;
        }
Exemple #29
0
 public int ForEachByte(int index, int length, ByteProcessor processor)
 {
     this.CheckIndex(index, length);
     return(-1);
 }
Exemple #30
0
 public virtual int ForEachByteDesc(ByteProcessor processor) => this.Buf.ForEachByteDesc(processor);
Exemple #31
0
 public int ForEachByteDesc(ByteProcessor processor) => - 1;
 public override int ForEachByteDesc(int index, int length, ByteProcessor processor) => this.Unwrap().ForEachByteDesc(index, length, processor);
 public int ForEachByte(ByteProcessor processor) => this.Buf.ForEachByte(processor);