Package org.eclipse.jetty.io

Examples of org.eclipse.jetty.io.Buffer


    return first;
    }
   
    public static void put(Field field, Buffer buffer, HeaderForm form, boolean merge)
    {
      Buffer name;
      switch (form)
    {
    case COMPACT:
      name = SipHeaders.getCompact(field.getName());
      break;
View Full Code Here


  @Test
  public void testEncode()
  {
    Compression c = new Compression();
    Buffer buffer = new ByteArrayBuffer(512);
    Name cipango = new Name("cipango.org");
    Name www = new Name("www.cipango.org");
    Name org = new Name("org");
    c.encodeName(cipango, buffer);
    c.encodeName(www, buffer);
    c.encodeName(cipango, buffer);
    c.encodeName(org, buffer);
   
    Assert.assertEquals(23, buffer.length());

    c = new Compression();
    Assert.assertEquals(cipango, c.decodeName(buffer));
    Assert.assertEquals(www, c.decodeName(buffer));
    Assert.assertEquals(cipango, c.decodeName(buffer));
    Assert.assertEquals(org, c.decodeName(buffer));
    Assert.assertFalse(buffer.hasContent());
  }
View Full Code Here

    if (length == 2 || length == 4) return;
   
    byte[] b = new byte[length];
    System.arraycopy(p.getData(), 0, b, 0, length);
   
    Buffer buffer = new ByteArrayBuffer(b);
   
    UdpBuffer udpBuffer = new UdpBuffer();
    udpBuffer._buffer = buffer;
    udpBuffer._address = p.getAddress();
    udpBuffer._port = p.getPort();
View Full Code Here

        }
        else
       
          if (_cached != null || _token0.length() > 0 || _token1.length() > 0 || _multiline != null) // TODO cached
          {
                        Buffer name = null;
                        if (_cached != null)
                        {
                          //System.out.println("Cached: " + _cached);
                          name = _cached;
                          _cached = null;
                        }
                        else
                        {
                          //System.out.println("Not Cached: " + _token0);
                          if (_token0.length() == 1)
                          {
                              name = SipHeaders.getCompact(_token0.peek());
 
                              if (name == null)
                                  name = SipHeaders.CACHE.lookup(_token0);
                          }
                          else
                          {
                              name = SipHeaders.CACHE.lookup(_token0);
                          }
                        }
                       
                       
            Buffer value = _multiline == null ? (Buffer) _token1 : new ByteArrayBuffer(_multiline); // FIXME UTF8
           
            int ho = SipHeaders.CACHE.getOrdinal(name);
           
            if (ho == SipHeaders.CONTENT_LENGTH_ORDINAL)
            {
              _contentLength = BufferUtil.toInt(value);
              if (_contentLength <= 0)
                _contentLength = NO_CONTENT;         
            }
           
            _handler.header(name, value);
            _token0.setPutIndex(_token0.getIndex());
            _token1.setPutIndex(_token1.getIndex());
            _multiline = null;
          }
         
          if (b == SipGrammar.CR || b == SipGrammar.LF)
          {
            _eol = b;
            _contentPosition = 0;
            _buffer.mark(0);
           
            if (_contentLength == UNKNOWN_CONTENT)
            {
              if (_endpoint != null)
                throw new IOException("No Content-Length");
              else
                _state = STATE_EOF_CONTENT; 
            }
            else if (_contentLength == 0)
            {
              _state = STATE_END;
              // TODO callback
            }
            else
            {
              _state = STATE_CONTENT; // TODO header complete ??
            }
            return totalFilled;
          }
          else
          {
           
            _buffer.mark();
            _length = 1;
            _state = STATE_HEADER_NAME; 
           
            if (array != null)
              _cached = SipHeaders.CACHE.getBest(array, _buffer.markIndex(), length + 1);
           
            //System.out.println(new String(array, _buffer.markIndex(), length + 1));
            if (_cached != null)
            {
              //System.out.println("Found in cache: " + _cached);
              _length = _cached.length();
              _buffer.setGetIndex(_buffer.markIndex() + _length);
              length = _buffer.length();
            }
          }
        }
        break;
       
      case STATE_HEADER_NAME:
        if (b == SipGrammar.CR || b == SipGrammar.LF)
        {
          if (_length > 0)
            _token0.update(_buffer.markIndex(), _buffer.markIndex() + _length);
           
          _eol = b;
          _state = STATE_HEADER;
        }
        if (b == SipGrammar.COLON)
        {
          if (_length > 0)
            _token0.update(_buffer.markIndex(), _buffer.markIndex() + _length);
         
          _length = -1;
          _state = STATE_HEADER_VALUE;
        }
        else if (b != SipGrammar.SPACE && b != SipGrammar.TAB)
        {
          if (_length == -1)
            _buffer.mark();
         
          _length = _buffer.getIndex() - _buffer.markIndex();
        }
        break;
       
      case STATE_HEADER_VALUE:
        if (b == SipGrammar.CR || b == SipGrammar.LF)
        {
          if (_length > 0)
          {
            if (_token1.length() == 0)
            {
              _token1.update(_buffer.markIndex(), _buffer.markIndex() + _length);
            }
            else
            {
              if (_multiline == null)
                _multiline = _token1.toString(); // TODO UTF-8
             
              _token1.update(_buffer.markIndex(), _buffer.markIndex() + _length);
              _multiline += " " + _token1.toString();
            }
          }
          _eol = b;
          _state = STATE_HEADER;
        }
        else if (b != SipGrammar.SPACE && b!= SipGrammar.TAB)
        {
          if (_length == -1)
            _buffer.mark();
         
          _length = _buffer.getIndex() - _buffer.markIndex();
        }
        break;
      }
    }
   
    // header done
   
    Buffer chunk;
    length = _buffer.length();
    while (_state > STATE_END && length > 0)
    {
      if (_eol == SipGrammar.CR && _buffer.peek() == SipGrammar.LF)
      {
        _eol = _buffer.get();
        length = _buffer.length();
        _contentPosition = 0;
        _buffer.mark(0);
        continue;
      }
      _eol = 0;
      switch (_state)
      {
      case STATE_EOF_CONTENT:
        chunk = _buffer.get(_buffer.length());
        _contentPosition += chunk.length();
        return totalFilled;
       
      case STATE_CONTENT:
        int remaining = _contentLength - _contentPosition;
        if (remaining == 0)
View Full Code Here

                _bufferQueue.wait();
             
              udpBuffer = _bufferQueue.poll();
            }
           
            Buffer buffer = udpBuffer._buffer;
           
            EventHandler handler = new EventHandler();
            SipParser parser = new SipParser(buffer, handler);
           
            try
            {
              parser.parse();
             
              SipMessage message = handler.getMessage();
              message.setConnection(new UdpConnection(udpBuffer._address, udpBuffer._port));
             
              /*
              message.set5uple(getTransportOrdinal(), getAddr(), getPort(), p.getAddress(), p.getPort());
           
              if (message.isRequest())
                ((SipRequest) message).setEndpoint(this);
               
              */
             
              process(message);
            }
            catch (Throwable t)
            {
              Log.warn(t);
              //if (handler.hasException())
                //Log.warn(handler.getException());
               
              if (Log.isDebugEnabled())
                Log.debug("Buffer content: \r\n" + HexString.toDetailedHexString(buffer.array(), buffer.length()));
            }
          }
          catch (Exception e)
          {
            Log.warn(e);
View Full Code Here

                     
                      while (startValue < endValue && b[startValue] <= ' ') startValue++;
                     
                      //byte[] bValue = asArray(b, startValue, endValue - startValue);
                     
                      Buffer buffer = new View(value, startValue, startValue, endValue, Buffer.READONLY);
                      _message.getFields().addBuffer(name, buffer);
                     
                      //value = new View(value, i + 1, i + 1, end, Buffer.READONLY);
                     
                      startValue = i + 1;
View Full Code Here

  }
 
  public void testEncode(String name) throws Exception
  {
    byte[] raw = getRawMessage(name);
    Buffer origBuffer = new ByteArrayBuffer(raw);
    DnsMessage message = new DnsMessage();
    message.decode(origBuffer);
    origBuffer = new ByteArrayBuffer(raw);
    Buffer buffer = new ByteArrayBuffer(512);
    message.encode(buffer);
    byte[] encoded = buffer.asArray();
    //System.out.println(message);
   
    DnsMessage message2 = new DnsMessage();
    message2.decode(new ByteArrayBuffer(encoded));
   
View Full Code Here

    return os.toByteArray();
  }
 
  public DnsMessage getMessage(String name) throws Exception
  {
    Buffer buffer = new ByteArrayBuffer(getRawMessage(name));
    DnsMessage message = new DnsMessage();
    message.decode(buffer);
    return message;
  }
View Full Code Here

    answer.setCommand(Common.CEA);
    AVPList l = new AVPList();
    answer.setAVPList(l);
    answer.setResultCode(Common.DIAMETER_SUCCESS);

    Buffer buffer = new ByteArrayBuffer(512);
    buffer = Codecs.__message.encode(buffer, answer);
    DiameterMessage message = Codecs.__message.decode(buffer);
    assertFalse(message.isRequest());
    assertEquals(Common.CEA, message.getCommand());
  }
View Full Code Here

    l.add(new AVP<Integer>(Common.FIRMWARE_REVISION, 2));
    l.add(new AVP<byte[]>(Sh.USER_DATA, "<shData>dasaiTag<shData>".getBytes()));

    for (int i = 24; i < 256; i++)
    {
      Buffer buffer = new ByteArrayBuffer(i);
      buffer = Codecs.__message.encode(buffer, answer);
      // System.out.println(buffer.putIndex() + " / " + i);
      DiameterMessage message = Codecs.__message.decode(buffer);
      // System.out.println(message);
      assertFalse(message.isRequest());
View Full Code Here

TOP

Related Classes of org.eclipse.jetty.io.Buffer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.