View Javadoc
1   package com.github.davidmoten.rx2.buffertofile;
2   
3   import java.io.DataInput;
4   import java.io.DataOutput;
5   import java.io.IOException;
6   
7   public interface DataSerializer<T> {
8   
9       void serialize(T t, DataOutput out) throws IOException;
10  
11      T deserialize(DataInput in) throws IOException;
12  
13      /**
14       * Returns 0 to indicate unknown (unbounded) capacity. Otherwise returns a
15       * value that will be used to size internal byte arrays to receive the
16       * serialized bytes ready for deserialization. An appropriate sizeHint will
17       * reduce array copying (like in `ByteArrayOutputStream`) to improve
18       * performance.
19       * 
20       * @return size hint to avoid byte array copying.
21       */
22      int sizeHint();
23  }