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

org.rx.io.Serializer Maven / Gradle / Ivy

There is a newer version: 3.0.0
Show newest version
package org.rx.io;

import org.rx.core.Constants;

public interface Serializer {
    Serializer DEFAULT = new JdkAndJsonSerializer();

    default  byte[] serializeToBytes(T obj) {
        try (IOStream stream = serialize(obj)) {
            return stream.toArray();
        }
    }

    default  IOStream serialize(T obj) {
        return serialize(obj, Constants.MAX_HEAP_BUF_SIZE, null);
    }

    default  HybridStream serialize(T obj, int maxMemorySize, String tempFilePath) {
        HybridStream stream = new HybridStream(maxMemorySize, tempFilePath);
        serialize(obj, stream);
        return (HybridStream) stream.rewind();
    }

     void serialize(T obj, IOStream stream);

    default  T deserialize(IOStream stream) {
        return deserialize(stream, false);
    }

     T deserialize(IOStream stream, boolean leveOpen);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy