package com.esotericsoftware.kryonet; import java.io.IOException; import com.esotericsoftware.kryo.Kryo; /** * Represents the local end point of a connection. * * @author Nathan Sweet <misc@n4te.com> */ public interface EndPoint extends Runnable { /** * Gets the serialization instance that will be used to serialize and * deserialize objects. */ public Serialization getSerialization(); /** If the listener already exists, it is not added again. */ public void addListener(Listener listener); public void removeListener(Listener listener); /** Continually updates this end point until {@link #stop()} is called. */ public void run(); /** Starts a new thread that calls {@link #run()}. */ public void start(); /** Closes this end point and causes {@link #run()} to return. */ public void stop(); /** * @see Client * @see Server */ public void close(); /** * @see Client#update(int) * @see Server#update(int) */ public void update(int timeout) throws IOException; /** * Returns the last thread that called {@link #update(int)} for this end * point. This can be useful to detect when long running code will be run on * the update thread. */ public Thread getUpdateThread(); /** * Gets the Kryo instance that will be used to serialize and deserialize * objects. This is only valid if {@link KryoSerialization} is being used, * which is the default. */ public Kryo getKryo(); }