@Override public Encoder writeBytes(byte[] bytes, int off, int len) throws IOException { return encoder.writeBytes(bytes, off, len); }
@Override protected void writeBytes(Encoder encoder, byte[] val) throws IOException { encoder.writeBytes(val); }
@Override public Encoder writeBytes(byte[] bytes, int off, int len) throws IOException { return encoder.writeBytes(bytes, off, len); }
@Override public Encoder writeBytes(ByteBuffer bytes) throws IOException { return encoder.writeBytes(bytes); } }
@Override protected void writeBytes(Encoder encoder, ByteBuffer val) throws IOException { encoder.writeBytes(val); }
@Override public Encoder writeBytes(ByteBuffer bytes) throws IOException { return encoder.writeBytes(bytes); } }
@Override protected void writeBytes(Encoder encoder, ByteBuffer val) throws IOException { encoder.writeBytes(val); }
@Override public Encoder writeBytes(byte[] bytes) throws IOException { return encoder.writeBytes(bytes); }
@Override public Encoder writeBytes(byte[] bytes) throws IOException { return encoder.writeBytes(bytes); }
@Override protected void writeBytes(Encoder encoder, byte[] val) throws IOException { encoder.writeBytes(val); }
private void encodeBytes(Encoder encoder, ByteBuffer buffer) throws IOException { if (buffer.hasArray()) { encoder.writeBytes(buffer.array(), buffer.arrayOffset() + buffer.position(), buffer.remaining()); } else { byte[] buf = Bytes.getBytes(buffer); buffer.mark(); buffer.get(buf); buffer.reset(); encoder.writeBytes(buf, 0, buf.length); } }
private void encodeBytes(Encoder encoder, ByteBuffer buffer) throws IOException { if (buffer.hasArray()) { encoder.writeBytes(buffer.array(), buffer.arrayOffset() + buffer.position(), buffer.remaining()); } else { byte[] buf = Bytes.getBytes(buffer); buffer.mark(); buffer.get(buf); buffer.reset(); encoder.writeBytes(buf, 0, buf.length); } }
private void encodeBytes(Encoder encoder, Object value) throws IOException { if (value instanceof ByteBuffer) { encodeBytes(encoder, (ByteBuffer) value); } else if (value.getClass().isArray() && value.getClass().getComponentType().equals(byte.class)) { byte[] bytes = (byte[]) value; encoder.writeBytes(bytes, 0, bytes.length); } else { throw new IOException("Expects either ByteBuffer or byte[]. Got " + value.getClass()); } }
private void encodeBytes(Encoder encoder, Object value) throws IOException { if (value instanceof ByteBuffer) { encodeBytes(encoder, (ByteBuffer) value); } else if (value.getClass().isArray() && value.getClass().getComponentType().equals(byte.class)) { byte[] bytes = (byte[]) value; encoder.writeBytes(bytes, 0, bytes.length); } else { throw new IOException("Expects either ByteBuffer or byte[]. Got " + value.getClass()); } }
/** * Encodes the given {@link StreamEventData} using the {@link Encoder}. * * @param data The data to encode * @param encoder The encoder * @throws IOException If there is any IO error during encoding. */ public static void encode(StreamEventData data, Encoder encoder) throws IOException { // The schema is sorted by name, hence it is {body, header}. // Writes the body encoder.writeBytes(data.getBody()); // Writes the headers Map<String, String> headers = data.getHeaders(); encoder.writeInt(headers.size()); for (Map.Entry<String, String> entry : headers.entrySet()) { String value = entry.getValue(); encoder.writeString(entry.getKey()) .writeInt(value == null ? 1 : 0) .writeString(entry.getValue()); } if (!headers.isEmpty()) { encoder.writeInt(0); } }
encoder.writeBytes(buf); IntBuffer inBuf = decoder.readBytes().asIntBuffer(); Assert.assertEquals(10, inBuf.get());