View Javadoc
1   package com.github.davidmoten.rx.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       /**
10       * Serializes an object to a data stream.
11       * 
12       * @param output
13       *            the data stream
14       * @param t
15       *            the object to serialize
16       * @throws IOException
17       *             exception
18       */
19      void serialize(DataOutput output, T t) throws IOException;
20  
21      /**
22       * Deserializes the bytes pointed by {@code input}.
23       * 
24       * @param input
25       *            input data to read from
26       * @return deserialized object
27       * @throws IOException
28       *             exception
29       */
30      T deserialize(DataInput input) throws IOException;
31  
32      /**
33       * Returns the serialized length if constant other wise returns 0 to
34       * indicate variable length (which may force more copying in memory and be a
35       * bit slower).
36       * 
37       * @return serialized length or 0 if variable
38       */
39      int size();
40  }