All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.davidmoten.rx.buffertofile.DataSerializer Maven / Gradle / Ivy

package com.github.davidmoten.rx.buffertofile;

import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;

public interface DataSerializer {

    /**
     * Serializes an object to a data stream.
     * 
     * @param output
     *            the data stream
     * @param t
     *            the object to serialize
     * @throws IOException
     *             exception
     */
    void serialize(DataOutput output, T t) throws IOException;

    /**
     * Deserializes the bytes pointed by {@code input}.
     * 
     * @param input
     *            input data to read from
     * @return deserialized object
     * @throws IOException
     *             exception
     */
    T deserialize(DataInput input) throws IOException;

    /**
     * Returns the serialized length if constant other wise returns 0 to
     * indicate variable length (which may force more copying in memory and be a
     * bit slower).
     * 
     * @return serialized length or 0 if variable
     */
    int size();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy