/** * */ public ByteArrayEndPoint(byte[] input, int outputSize) { _inBytes=input; _in=new ByteArrayBuffer(input); _out=new ByteArrayBuffer(outputSize); }
ByteArrayBuffer buffer; try { buffer = new ByteArrayBuffer(getRequestMessage().getBodyString(), charset); } catch (UnsupportedEncodingException ex) { throw new RuntimeException("Unsupported character encoding: " + charset, ex); setRequestHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(buffer.length())); setRequestContent(buffer); buffer = new ByteArrayBuffer(getRequestMessage().getBodyBytes()); setRequestHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(buffer.length())); setRequestContent(buffer);
@Override public void write(int b) throws IOException { if (_onebyte==null) _onebyte=new ByteArrayBuffer(1); else _onebyte.clear(); _onebyte.put((byte)b); write(_onebyte); }
/** * */ public void reset() { _closed=false; _in.clear(); _out.clear(); if (_inBytes!=null) _in.setPutIndex(_inBytes.length); }
@Override public int hashCode() { if (_hash == 0 || _hashGet!=_get || _hashPut!=_put) { int get=getIndex(); for (int i = putIndex(); i-- >get;) { byte b = _bytes[i]; if ('a' <= b && b <= 'z') b = (byte) (b - 'a' + 'A'); _hash = 31 * _hash + b; } if (_hash == 0) _hash = -1; _hashGet=_get; _hashPut=_put; } return _hash; }
if (_aggregate.space()<_aggregate.length()) _aggregate.clear(); _opcode=-1; _aggregate.put(buffer); _onBinaryMessage.onMessage(_aggregate.array(),_aggregate.getIndex(),_aggregate.length()); _aggregate.clear(); _aggregate.clear(); _opcode=-1; _aggregate=new ByteArrayBuffer(_connection.getMaxBinaryMessageSize()); _aggregate.put(buffer);
public int flush(Buffer buffer) throws IOException { if (_closed) throw new IOException("CLOSED"); if (_growOutput && buffer.length()>_out.space()) { _out.compact(); if (buffer.length()>_out.space()) { ByteArrayBuffer n = new ByteArrayBuffer(_out.putIndex()+buffer.length()); n.put(_out.peek(0,_out.putIndex())); if (_out.getIndex()>0) { n.mark(); n.setGetIndex(_out.getIndex()); } _out=n; } } int len = _out.put(buffer); if (!buffer.isImmutable()) buffer.skip(len); return len; }
@Override public void compact() { if (isReadOnly()) throw new IllegalStateException(__READONLY); int s = markIndex() >= 0 ? markIndex() : getIndex(); if (s > 0) { int length = putIndex() - s; if (length > 0) { System.arraycopy(_bytes, s,_bytes, 0, length); } if (markIndex() > 0) setMarkIndex(markIndex() - s); setGetIndex(getIndex() - s); setPutIndex(putIndex() - s); } }
public String getResponses(String requests, boolean keepOpen) throws Exception { ByteArrayBuffer result = getResponses(new ByteArrayBuffer(requests, StringUtil.__ISO_8859_1), keepOpen); return result==null?null:result.toString(StringUtil.__ISO_8859_1); }
@Override public void writeTo(OutputStream out) throws IOException { int len=length(); if (MAX_WRITE>0 && len>MAX_WRITE) { int off=getIndex(); while(len>0) { int c=len>MAX_WRITE?MAX_WRITE:len; out.write(_bytes,off,c); off+=c; len-=c; } } else out.write(_bytes,getIndex(),len); if (!isImmutable()) clear(); }
return equalsIgnoreCase((Buffer)obj); if (b.length() != length()) return false; int get=getIndex(); int bi=b.putIndex(); for (int i = putIndex(); i-->get;)
@Override public int readFrom(InputStream in,int max) throws IOException { if (max<0||max>space()) max=space(); int p = putIndex(); int len=0, total=0, available=max; while (total<max) { len=in.read(_bytes,p,available); if (len<0) break; else if (len>0) { p += len; total += len; available -= len; setPutIndex(p); } if (in.available()<=0) break; } if (len<0 && total==0) return -1; return total; }
/** * @return the cacheControl header to set on all static content. */ public String getCacheControl() { return _cacheControl.toString(); }
private boolean checkBinaryMessageSize(int bufferLen, int length) { int max = _connection.getMaxBinaryMessageSize(); if (max>0 && (bufferLen+length)>max) { LOG.warn("Binary message too large > {}B for {}",_connection.getMaxBinaryMessageSize(),_endp); _connection.close(WebSocketConnectionD08.CLOSE_BADDATA,"Message size > "+_connection.getMaxBinaryMessageSize()); _opcode=-1; if (_aggregate!=null) _aggregate.clear(); return false; } return true; }
if (_handshake==null || _handshake.length()>0) if (!handshake()) return this;