package backtype.storm.serialization;
import com.esotericsoftware.kryo.Kryo;
import java.util.Map;
/**
* An interface that controls the Kryo instance used by Storm for serialization.
* The lifecycle is:
*
* 1. The Kryo instance is constructed using getKryo 2. Storm registers the
* default classes (e.g. arrays, lists, maps, etc.) 3. Storm calls preRegister
* hook 4. Storm registers all user-defined registrations through
* topology.kryo.register 5. Storm calls postRegister hook 6. Storm calls all
* user-defined decorators through topology.kryo.decorators 7. Storm calls
* postDecorate hook
*/
public interface IKryoFactory {
Kryo getKryo(Map conf);
void preRegister(Kryo k, Map conf);
void postRegister(Kryo k, Map conf);
void postDecorate(Kryo k, Map conf);
}