Class PeerImpl

    • Constructor Detail

      • PeerImpl

        protected PeerImpl​(PEPeer _delegate)
        don't use me, use PeerManagerImpl.getPeerForPEPeer
        Parameters:
        _delegate -
    • Method Detail

      • getDelegate

        public PEPeer getDelegate()
      • getConnection

        public Connection getConnection()
        Description copied from interface: Peer
        Get the network connection that backs this peer.
        Specified by:
        getConnection in interface Peer
        Returns:
        connection
      • supportsMessaging

        public boolean supportsMessaging()
        Description copied from interface: Peer
        Whether or not this peer supports the advanced messaging API.
        Specified by:
        supportsMessaging in interface Peer
        Returns:
        true if extended messaging is supported, false if not
      • getSupportedMessages

        public Message[] getSupportedMessages()
        Description copied from interface: Peer
        Get the list of messages that this peer and us mutually understand.
        Specified by:
        getSupportedMessages in interface Peer
        Returns:
        messages available for use, or null of supported is yet unknown
      • getState

        public int getState()
        Specified by:
        getState in interface Peer
      • isMyPeer

        public boolean isMyPeer()
        Specified by:
        isMyPeer in interface Peer
      • getId

        public byte[] getId()
        Specified by:
        getId in interface Peer
      • getIp

        public java.lang.String getIp()
        Description copied from interface: Peer
        Get the peer's local TCP connection port.
        Specified by:
        getIp in interface Peer
        Returns:
        local port
      • getPort

        public int getPort()
        Specified by:
        getPort in interface Peer
      • getTCPListenPort

        public int getTCPListenPort()
        Description copied from interface: Peer
        Get the TCP port this peer is listening for incoming connections on.
        Specified by:
        getTCPListenPort in interface Peer
        Returns:
        TCP port, or 0 if port is unknown
      • getUDPListenPort

        public int getUDPListenPort()
        Description copied from interface: Peer
        Get the UDP port this peer is listening for incoming connections on.
        Specified by:
        getUDPListenPort in interface Peer
        Returns:
        UDP port, or 0 if port is unknown
      • getUDPNonDataListenPort

        public int getUDPNonDataListenPort()
        Description copied from interface: Peer
        Get the UDP port this peer is listening on for non-data connections
        Specified by:
        getUDPNonDataListenPort in interface Peer
        Returns:
      • isLANLocal

        public boolean isLANLocal()
        Specified by:
        isLANLocal in interface Peer
      • getAvailable

        public final boolean[] getAvailable()
        Specified by:
        getAvailable in interface Peer
      • isPieceAvailable

        public boolean isPieceAvailable​(int pieceNumber)
        Specified by:
        isPieceAvailable in interface Peer
        Parameters:
        pieceNumber - int
        Returns:
        true if this peers makes this piece available
      • isDownloadPossible

        public boolean isDownloadPossible()
        Description copied from interface: Peer
        This is much list isTransferAvailable(), except is more comprehensive. That is; it checks a few more factors, within the object for speed, so that a more timely status is considered and the caller doesn't need to try to check each thing on it's own.
        Specified by:
        isDownloadPossible in interface Peer
        Returns:
        true if several factors say downloading can be tried.
      • isChoked

        public boolean isChoked()
        Specified by:
        isChoked in interface Peer
      • isChoking

        public boolean isChoking()
        Specified by:
        isChoking in interface Peer
      • isInterested

        public boolean isInterested()
        Specified by:
        isInterested in interface Peer
      • isInteresting

        public boolean isInteresting()
        Specified by:
        isInteresting in interface Peer
      • isSeed

        public boolean isSeed()
        Specified by:
        isSeed in interface Peer
      • isSnubbed

        public boolean isSnubbed()
        Specified by:
        isSnubbed in interface Peer
      • getSnubbedTime

        public long getSnubbedTime()
        Specified by:
        getSnubbedTime in interface Peer
      • setSnubbed

        public void setSnubbed​(boolean b)
        Specified by:
        setSnubbed in interface Peer
      • isIncoming

        public boolean isIncoming()
        Specified by:
        isIncoming in interface Peer
      • getClient

        public java.lang.String getClient()
        Specified by:
        getClient in interface Peer
      • setOptimisticUnchoke

        public void setOptimisticUnchoke​(boolean is_optimistic)
        Specified by:
        setOptimisticUnchoke in interface Peer
      • initialize

        public void initialize()
      • getExpiredRequests

        public java.util.List getExpiredRequests()
        Specified by:
        getExpiredRequests in interface Peer
      • getRequests

        public java.util.List getRequests()
        Specified by:
        getRequests in interface Peer
      • requestAllocationStarts

        public boolean requestAllocationStarts​(int[] base_priorities)
        Specified by:
        requestAllocationStarts in interface Peer
      • createRGListeners

        private void createRGListeners()
      • addRateLimiter

        public void addRateLimiter​(RateLimiter limiter,
                                   boolean is_upload)
        Specified by:
        addRateLimiter in interface Peer
        Parameters:
        limiter - create via ConnectionManager
        is_upload - false -> download limit
      • close

        public void close​(java.lang.String reason,
                          boolean closedOnError,
                          boolean attemptReconnect)
        Specified by:
        close in interface Peer
      • readBytes

        public int readBytes​(int max)
        Description copied from interface: Peer
        Rate control - gives the maximum number of bytes that can be read from this connection at this time and returns the actual number read
        Specified by:
        readBytes in interface Peer
        Returns:
      • writeBytes

        public int writeBytes​(int max)
        Specified by:
        writeBytes in interface Peer
      • closed

        protected void closed()
      • addListener

        public void addListener​(PeerListener2 l)
        Description copied from interface: Peer
        Add peer listener.
        Specified by:
        addListener in interface Peer
      • removeListener

        public void removeListener​(PeerListener2 l)
        Description copied from interface: Peer
        Remove peer listener.
        Specified by:
        removeListener in interface Peer
      • setPriorityConnection

        public void setPriorityConnection​(boolean is_priority)
        Specified by:
        setPriorityConnection in interface Peer
      • setUserData

        public void setUserData​(java.lang.Object key,
                                java.lang.Object value)
        Specified by:
        setUserData in interface Peer
      • getUserData

        public java.lang.Object getUserData​(java.lang.Object key)
        Specified by:
        getUserData in interface Peer
      • equals

        public boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • getPEPeer

        public PEPeer getPEPeer()
        Core use only. This is not propogated to the plugin interface
        Returns:
        PEPeer object associated with the plugin Peer object
      • getRelationText

        public java.lang.String getRelationText()
        Description copied from class: LogRelation
        A short description of what your class holds that can be printed by the logger
        Overrides:
        getRelationText in class LogRelation
        Returns:
      • getQueryableInterfaces

        public java.lang.Object[] getQueryableInterfaces()
        Description copied from class: LogRelation
        Query this class for a reference to another class that it may hold
        Overrides:
        getQueryableInterfaces in class LogRelation
        Returns:
        If found, the class desired. Otherwise, null.