package net.varkhan.serv.p2p.network; import net.varkhan.serv.p2p.Listenable; import net.varkhan.serv.p2p.connect.PeerNode; import net.varkhan.serv.p2p.connect.PeerAddress; import net.varkhan.serv.p2p.connect.PeerProperties; import net.varkhan.serv.p2p.message.MesgPayload; import net.varkhan.serv.p2p.message.dispatch.MesgReceiver; import net.varkhan.serv.p2p.connect.config.MapProperties; import java.io.IOException; /** * <b></b>. * <p/> * * @author varkhan * @date 5/29/11 * @time 7:19 AM */ public abstract class P2PNode extends MapProperties implements PeerAddress, PeerProperties, PeerNode { /** * Default heartbeat: every 10s */ public static final long DEFAULT_HEARTBEAT=10000; public static final String PROPERTY_HEART_BEAT="HeartBeat"; protected final String name; public P2PNode(String name, PeerProperties props) { super(props); this.name=name; } public P2PNode(String name) { super(); this.name=name; } public String name() { return name; } public abstract boolean call(String method, MesgPayload message, MesgReceiver handler) throws IOException; public abstract boolean repl(String method, MesgPayload message, long sequence) throws IOException; public abstract <T extends Listenable> void addListener(UpdateListener<T> list); }