@Override public Buffer apply(OUT out) { return encoder.apply(out); }
@Override public Buffer apply(OUT out) { Buffer buff = delegate.apply(out); try { ByteArrayOutputStream bout = new ByteArrayOutputStream(); OutputStream zout = createOutputStream(bout); zout.write(buff.asBytes()); zout.flush(); bout.flush(); zout.close(); return Buffer.wrap(bout.toByteArray()); } catch (IOException e) { throw new IllegalStateException(e.getMessage(), e); } }
@Override public Buffer apply(OUT out) { if (null == out) { return null; } Buffer encoded = delegate.apply(out); if (null != encoded && encoded.remaining() > 0) { int len = encoded.remaining(); ByteBuffer bb = null; if (lengthFieldLength == 4) { bb = ByteBuffer.allocate(len + 4); bb.putInt(len); } else if (lengthFieldLength == 2) { bb = ByteBuffer.allocate(len + 2); bb.putShort((short) len); } else if (lengthFieldLength == 8) { bb = ByteBuffer.allocate(len + 8); bb.putLong((long) len); } if (null != bb) { bb.put(encoded.byteBuffer()).flip(); return new Buffer(bb); } } return encoded; }
@Override public Long offer(@Nonnull T t) { synchronized (monitor) { Buffer buff = codec.apply(t); int len = buff.remaining(); exAppender.startExcerpt(4 + len); exAppender.writeInt(len); exAppender.write(buff.byteBuffer()); exAppender.finish(); size.incrementAndGet(); lastId.set(exAppender.lastWrittenIndex()); } if (LOG.isTraceEnabled()) { LOG.trace("Offered {} to Chronicle at index {}, size {}", t, lastId(), size()); } return lastId(); }
@Override public Buffer apply(OUT out) { Buffer buffer = new Buffer(); Buffer encoded = delegate.apply(out); if (null != encoded && encoded.remaining() > 0) { buffer.append(encoded).append(delimiter); } return buffer.flip(); }
private void writeValue(ExcerptAppender excerpt, V value) { if (valueCodec == null) { excerpt.writeObject(value); } else { Buffer buff = valueCodec.apply(value); int size = buff.remaining(); excerpt.writeInt(size); excerpt.write(buff.byteBuffer()); } }
private void writeKey(ExcerptAppender excerpt, K key) { if (keyCodec == null) { excerpt.writeObject(key); } else { Buffer buff = keyCodec.apply(key); int size = buff.remaining(); excerpt.writeInt(size); excerpt.write(buff.byteBuffer()); } }
private void writeKey(ExcerptAppender excerpt, K key) { if (keyCodec == null) { excerpt.writeObject(key); } else { Buffer buff = keyCodec.apply(key); int size = buff.remaining(); excerpt.writeInt(size); excerpt.write(buff.byteBuffer()); } }
private void writeValue(ExcerptAppender excerpt, V value) { if (valueCodec == null) { excerpt.writeObject(value); } else { Buffer buff = valueCodec.apply(value); int size = buff.remaining(); excerpt.writeInt(size); excerpt.write(buff.byteBuffer()); } }