Interface Peer<LOCATOR,HEADER extends P2PHeader<LOCATOR>,TAIL extends P2PTail<LOCATOR>,MSG extends P2PMessage<LOCATOR,HEADER,?,TAIL>,ROUTER extends PeerRouter<LOCATOR,HEADER,TAIL,MSG>>

Type Parameters:
ROUTER - The PeerRouter type to use when routing P2PMessage instances.
LOCATOR - Defines the type of the locators identifying a peer.
HEADER - The P2PHeader defines the static attributes addressed for the target of the P2PMessage (a header might be signed as it is not modified during dispatch).
TAIL - The P2PTail describes the dynamic attributes required during dispatch of a P2PMessage (a tail is modified during dispatch by having the visited hops appended).
MSG - The (sub-)type of the P2PMessage being processed by the according Peer (sub-)type.
All Superinterfaces:
org.refcodes.mixin.LocatorAccessor<LOCATOR>, PeerRouter<LOCATOR,HEADER,TAIL,MSG>, Terminal<LOCATOR>
All Known Implementing Classes:
AbstractPeer

public interface Peer<LOCATOR,HEADER extends P2PHeader<LOCATOR>,TAIL extends P2PTail<LOCATOR>,MSG extends P2PMessage<LOCATOR,HEADER,?,TAIL>,ROUTER extends PeerRouter<LOCATOR,HEADER,TAIL,MSG>> extends PeerRouter<LOCATOR,HEADER,TAIL,MSG>, Terminal<LOCATOR>
A Peer represents a physical peer using PeerRouter instances to communicate with its direct neighbours. You can think of a Peer being the skeleton and a PeerRouter being the stub (as of RPC) of a peer.