@Override public KryoSerializer<T> duplicate() { return new KryoSerializer<>(this); }
@Override public T deserialize(T reuse, DataInputView source) throws IOException { return deserialize(source); }
@Override public T copy(T from, T reuse) { return copy(from); }
private void runDuplicateSerializerTest(ExecutionConfig executionConfig) { final KryoSerializer<WrappedString> original = new KryoSerializer<>(WrappedString.class, executionConfig); final KryoSerializer<WrappedString> duplicate = original.duplicate(); WrappedString testString = new WrappedString("test"); String copyWithOriginal = original.copy(testString).content; String copyWithDuplicate = duplicate.copy(testString).content; Assert.assertTrue(copyWithOriginal.startsWith(testString.content)); Assert.assertTrue(copyWithDuplicate.startsWith(testString.content)); // check that both serializer instances have appended a different identity hash Assert.assertNotEquals(copyWithOriginal, copyWithDuplicate); }
@Override public void go() throws Exception { serializer.serialize("a value", lockingOut); } };
@Override public void writeByte(int v) throws IOException { checkSize(1); buffer[position] = (byte)v; position++; }
@Test public void testDuplicateSerializerWithRegisteredSerializerInstance() { ExecutionConfig executionConfig = new ExecutionConfig(); executionConfig.registerTypeWithKryoSerializer(WrappedString.class, new TestSerializer()); runDuplicateSerializerTest(executionConfig); }
@Override public KryoSerializerConfigSnapshot<T> snapshotConfiguration() { return new KryoSerializerConfigSnapshot<>(type, kryoRegistrations); }
@Override protected <T> TypeSerializer<T> createSerializer(Class<T> type) { return new KryoSerializer<T>(type, ec); }
@Override public void writeLong(long v) throws IOException { checkSize(8); position += 8; }
@Test public void testDuplicateSerializerWithDefaultSerializerInstance() { ExecutionConfig executionConfig = new ExecutionConfig(); executionConfig.addDefaultKryoSerializer(WrappedString.class, new TestSerializer()); runDuplicateSerializerTest(executionConfig); }
@Override public void writeFloat(float v) throws IOException { checkSize(4); position += 4; }
@Override public void writeDouble(double v) throws IOException { checkSize(8); position += 8; }
@Override public void writeShort(int v) throws IOException { checkSize(2); position += 2; }
@Override public void writeChar(int v) throws IOException { checkSize(1); position++; }
@Override public void skipBytesToWrite(int numBytes) throws IOException { checkSize(numBytes); position += numBytes; }
@Override public void write(int b) throws IOException { checkSize(4); position += 4; }
@Override public void writeBoolean(boolean v) throws IOException { checkSize(1); position += 1; }
@Override public void writeInt(int v) throws IOException { checkSize(4); position += 4; }
@Override public void write(byte[] b, int off, int len) throws IOException { checkSize(len); System.arraycopy(b, off, buffer, position, len); position += len; }