@Override public VarLongCoder fromCloudObject(CloudObject object) { return VarLongCoder.of(); }
@Override public void encode(IsmShard value, OutputStream outStream) throws CoderException, IOException { checkState( value.getIndexOffset() >= 0, "%s attempting to be written without index offset.", value); VarIntCoder.of().encode(value.getId(), outStream); VarLongCoder.of().encode(value.getBlockOffset(), outStream); VarLongCoder.of().encode(value.getIndexOffset(), outStream); }
@Override public void verifyDeterministic() { VarIntCoder.of().verifyDeterministic(); VarLongCoder.of().verifyDeterministic(); }
@Override public void encode(ReadableDuration value, OutputStream outStream) throws CoderException, IOException { if (value == null) { throw new CoderException("cannot encode a null ReadableDuration"); } LONG_CODER.encode(toLong(value), outStream); }
@Override public ReadableDuration decode(InputStream inStream) throws CoderException, IOException { return fromLong(LONG_CODER.decode(inStream)); }
@Override public void verifyDeterministic() { LONG_CODER.verifyDeterministic(); }
@Override public void encode(Result<DestinationT> value, OutputStream outStream) throws IOException { if (value == null) { throw new CoderException("cannot encode a null value"); } stringCoder.encode(value.filename, outStream); longCoder.encode(value.fileByteSize, outStream); destinationCoder.encode(value.destination, outStream); }
@Override public Result<DestinationT> decode(InputStream inStream) throws IOException { String filename = stringCoder.decode(inStream); long fileByteSize = longCoder.decode(inStream); DestinationT destination = destinationCoder.decode(inStream); return new Result<>(filename, fileByteSize, destination); }
@Override public Coder<Long> getOutputCoder() { return VarLongCoder.of(); }
@Override public void encode(Metadata value, OutputStream os) throws IOException { RESOURCE_ID_CODER.encode(value.resourceId(), os); INT_CODER.encode(value.isReadSeekEfficient() ? 1 : 0, os); LONG_CODER.encode(value.sizeBytes(), os); }
@Override public KafkaRecord<K, V> decode(InputStream inStream) throws IOException { return new KafkaRecord<>( stringCoder.decode(inStream), intCoder.decode(inStream), longCoder.decode(inStream), longCoder.decode(inStream), KafkaTimestampType.forOrdinal(intCoder.decode(inStream)), (Headers) toHeaders(headerCoder.decode(inStream)), kvCoder.decode(inStream)); }
@Override public Coder<Long> getOutputCoder() { return VarLongCoder.of(); }
private KeyedOneInputStreamOperatorTestHarness< ByteBuffer, WindowedValue<KeyedWorkItem<Long, Long>>, WindowedValue<KV<Long, Long>>> createTestHarness(WindowDoFnOperator<Long, Long, Long> windowDoFnOperator) throws Exception { return new KeyedOneInputStreamOperatorTestHarness<>( windowDoFnOperator, (KeySelector<WindowedValue<KeyedWorkItem<Long, Long>>, ByteBuffer>) o -> { try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) { VarLongCoder.of().encode(o.getValue().key(), baos); return ByteBuffer.wrap(baos.toByteArray()); } }, new GenericTypeInfo<>(ByteBuffer.class)); }
@Override public void encode(KafkaRecord<K, V> value, OutputStream outStream) throws IOException { stringCoder.encode(value.getTopic(), outStream); intCoder.encode(value.getPartition(), outStream); longCoder.encode(value.getOffset(), outStream); longCoder.encode(value.getTimestamp(), outStream); intCoder.encode(value.getTimestampType().ordinal(), outStream); headerCoder.encode(toIterable(value), outStream); kvCoder.encode(value.getKV(), outStream); }
@Override public KafkaRecord<K, V> decode(InputStream inStream) throws IOException { return new KafkaRecord<>( stringCoder.decode(inStream), intCoder.decode(inStream), longCoder.decode(inStream), longCoder.decode(inStream), KafkaTimestampType.forOrdinal(intCoder.decode(inStream)), (Headers) toHeaders(headerCoder.decode(inStream)), kvCoder.decode(inStream)); }
public static Coder getCoder() { return MapCoder.of(StringUtf8Coder.of(), VarLongCoder.of()); } }
private KeyedOneInputStreamOperatorTestHarness< ByteBuffer, WindowedValue<KeyedWorkItem<Long, Long>>, WindowedValue<KV<Long, Long>>> createTestHarness(WindowDoFnOperator<Long, Long, Long> windowDoFnOperator) throws Exception { return new KeyedOneInputStreamOperatorTestHarness<>( windowDoFnOperator, (KeySelector<WindowedValue<KeyedWorkItem<Long, Long>>, ByteBuffer>) o -> { try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) { VarLongCoder.of().encode(o.getValue().key(), baos); return ByteBuffer.wrap(baos.toByteArray()); } }, new GenericTypeInfo<>(ByteBuffer.class)); }