Class PEPeerControlImpl

java.lang.Object
com.biglybt.core.logging.LogRelation
com.biglybt.core.peer.impl.control.PEPeerControlImpl
All Implemented Interfaces:
DiskManagerCheckRequestListener, DiskManagerWriteRequestListener, IPFilterListener, PEPeerControl, PEPeerManager, PeerControlInstance, PeerNATInitiator

manages all peer transports for a torrent
  • Field Details

    • LOGID

      private static final LogIDs LOGID
    • TEST_PERIODIC_SEEDING_SCAN_FAIL_HANDLING

      private static final boolean TEST_PERIODIC_SEEDING_SCAN_FAIL_HANDLING
      See Also:
    • WARNINGS_LIMIT

      private static final int WARNINGS_LIMIT
      See Also:
    • CHECK_REASON_DOWNLOADED

      private static final int CHECK_REASON_DOWNLOADED
      See Also:
    • CHECK_REASON_COMPLETE

      private static final int CHECK_REASON_COMPLETE
      See Also:
    • CHECK_REASON_SCAN

      private static final int CHECK_REASON_SCAN
      See Also:
    • CHECK_REASON_SEEDING_CHECK

      private static final int CHECK_REASON_SEEDING_CHECK
      See Also:
    • CHECK_REASON_BAD_PIECE_CHECK

      private static final int CHECK_REASON_BAD_PIECE_CHECK
      See Also:
    • SEED_CHECK_WAIT_MARKER

      private static final int SEED_CHECK_WAIT_MARKER
      See Also:
    • REQ_TIMEOUT_DATA_AGE_SEED_MILLIS

      private static final long REQ_TIMEOUT_DATA_AGE_SEED_MILLIS
      See Also:
    • REQ_TIMEOUT_DATA_AGE_LEECH_MILLIS

      private static final long REQ_TIMEOUT_DATA_AGE_LEECH_MILLIS
      See Also:
    • REQ_TIMEOUT_OLDEST_REQ_AGE_MILLIS

      private static final long REQ_TIMEOUT_OLDEST_REQ_AGE_MILLIS
      See Also:
    • RESERVED_PIECE_TIMEOUT_MILLIS

      private static final long RESERVED_PIECE_TIMEOUT_MILLIS
      See Also:
    • CON_HEALTH_DONE_KEY

      private static final Object CON_HEALTH_DONE_KEY
    • DUP_PEER_CC_KEY

      private static final Object DUP_PEER_CC_KEY
    • DUP_PEER_AS_KEY

      private static final Object DUP_PEER_AS_KEY
    • global_disconnect_seeds_when_seeding

      private static boolean global_disconnect_seeds_when_seeding
    • enable_seeding_piece_rechecks

      private static boolean enable_seeding_piece_rechecks
    • stalled_piece_timeout

      private static int stalled_piece_timeout
    • fast_unchoke_new_peers

      private static boolean fast_unchoke_new_peers
    • ban_peer_discard_ratio

      private static float ban_peer_discard_ratio
    • ban_peer_discard_min_kb

      private static int ban_peer_discard_min_kb
    • udp_fallback_for_failed_connection

      private static boolean udp_fallback_for_failed_connection
    • udp_fallback_for_dropped_connection

      private static boolean udp_fallback_for_dropped_connection
    • udp_probe_enabled

      private static boolean udp_probe_enabled
    • global_hide_a_piece

      private static boolean global_hide_a_piece
    • global_hide_a_piece_ds

      private static boolean global_hide_a_piece_ds
    • prefer_udp_default

      private static boolean prefer_udp_default
    • dual_ipv4_ipv6_connection_action

      private static int dual_ipv4_ipv6_connection_action
    • auto_sequential_file_exts

      static volatile Set<String> auto_sequential_file_exts
    • network_admin

      private static final NetworkAdmin network_admin
    • ip_filter

      private static final IpFilter ip_filter
    • UUID_GEN

      private static final AtomicInteger UUID_GEN
    • pm_uuid

      private final int pm_uuid
    • is_running

      private volatile boolean is_running
    • is_destroyed

      private volatile boolean is_destroyed
    • peer_transports_cow

      private volatile ArrayList<PEPeerTransport> peer_transports_cow
    • peer_transports_mon

      private final AEMonitor peer_transports_mon
    • adapter

      protected final PEPeerManagerAdapter adapter
    • torrent

      private final TOTorrent torrent
    • disk_mgr

      private final DiskManager disk_mgr
    • dm_pieces

      private final DiskManagerPiece[] dm_pieces
    • is_private_torrent

      private final boolean is_private_torrent
    • stats_receiver

      private PEPeerManager.StatsReceiver stats_receiver
    • piecePicker

      private final PiecePicker piecePicker
    • lastNeededUndonePieceChange

      private long lastNeededUndonePieceChange
    • seeding_mode

      private boolean seeding_mode
      literally seeding as in 100% torrent complete
    • restart_initiated

      private boolean restart_initiated
    • _nbPieces

      private final int _nbPieces
    • pePieces

      private final PEPieceImpl[] pePieces
    • nbPiecesActive

      private int nbPiecesActive
    • nbBytesRemaining

      private long nbBytesRemaining
    • nbPeersSnubbed

      private int nbPeersSnubbed
    • _hash

      private PeerIdentityDataID _hash
    • _myPeerId

      private final byte[] _myPeerId
    • _stats

      private PEPeerManagerStatsImpl _stats
    • hash_handler

      private final PEPeerControlHashHandler hash_handler
    • stats_tick_count

      private int stats_tick_count
    • _seeds

      private int _seeds
    • _peers

      private int _peers
    • _remotesTCPNoLan

      private int _remotesTCPNoLan
    • _remotesUDPNoLan

      private int _remotesUDPNoLan
    • _remotesUTPNoLan

      private int _remotesUTPNoLan
    • _tcp_peers_transfering

      private int _tcp_peers_transfering
    • _tcpPendingConnections

      private int _tcpPendingConnections
    • _tcpConnectingConnections

      private int _tcpConnectingConnections
    • last_remote_time

      private long last_remote_time
    • _timeStarted

      private long _timeStarted
    • _timeStarted_mono

      private long _timeStarted_mono
    • _timeStartedSeeding

      private long _timeStartedSeeding
    • _timeStartedSeeding_mono

      private long _timeStartedSeeding_mono
    • _timeFinished_mono

      private long _timeFinished_mono
    • _averageReceptionSpeed

      private Average _averageReceptionSpeed
    • mainloop_loop_count

      private long mainloop_loop_count
    • MAINLOOP_ONE_SECOND_INTERVAL

      private static final int MAINLOOP_ONE_SECOND_INTERVAL
    • MAINLOOP_FIVE_SECOND_INTERVAL

      private static final int MAINLOOP_FIVE_SECOND_INTERVAL
    • MAINLOOP_TEN_SECOND_INTERVAL

      private static final int MAINLOOP_TEN_SECOND_INTERVAL
    • MAINLOOP_TWENTY_SECOND_INTERVAL

      private static final int MAINLOOP_TWENTY_SECOND_INTERVAL
    • MAINLOOP_THIRTY_SECOND_INTERVAL

      private static final int MAINLOOP_THIRTY_SECOND_INTERVAL
    • MAINLOOP_SIXTY_SECOND_INTERVAL

      private static final int MAINLOOP_SIXTY_SECOND_INTERVAL
    • MAINLOOP_FIVE_MINUTE_INTERVAL

      private static final int MAINLOOP_FIVE_MINUTE_INTERVAL
    • MAINLOOP_TEN_MINUTE_INTERVAL

      private static final int MAINLOOP_TEN_MINUTE_INTERVAL
    • peer_manager_listeners_cow

      private volatile ArrayList<PEPeerManagerListener> peer_manager_listeners_cow
    • piece_check_result_list

      private final List<Object[]> piece_check_result_list
    • piece_check_result_list_mon

      private final AEMonitor piece_check_result_list_mon
    • superSeedMode

      private boolean superSeedMode
    • superSeedModeCurrentPiece

      private int superSeedModeCurrentPiece
    • superSeedModeNumberOfAnnounces

      private int superSeedModeNumberOfAnnounces
    • superSeedPieces

      private SuperSeedPiece[] superSeedPieces
    • global_hide_a_piece_cached

      private boolean global_hide_a_piece_cached
    • local_hide_a_piece_opt

      private Boolean local_hide_a_piece_opt
    • hidden_piece

      private int hidden_piece
    • OB_PS_STATS_HISTORY_SIZE

      private static final int OB_PS_STATS_HISTORY_SIZE
      See Also:
    • ob_ps_stats_history

      private boolean[][] ob_ps_stats_history
    • ob_ps_stats

      private int[] ob_ps_stats
    • ob_ps_stats_pos

      private int[] ob_ps_stats_pos
    • this_mon

      private final AEMonitor this_mon
    • ip_filter_last_update_time

      private long ip_filter_last_update_time
    • user_data

      private Map<Object,Object> user_data
    • unchoker

      private Unchoker unchoker
    • external_rate_limiters_cow

      private List<Object[]> external_rate_limiters_cow
    • bytes_queued_for_upload

      private int bytes_queued_for_upload
    • connections_with_queued_data

      private int connections_with_queued_data
    • connections_with_queued_data_blocked

      private int connections_with_queued_data_blocked
    • connections_unchoked

      private int connections_unchoked
    • connections_unchoking

      private int connections_unchoking
    • outbound_message_count

      private int outbound_message_count
    • sweepList

      private List<PEPeerTransport> sweepList
    • nextPEXSweepIndex

      private int nextPEXSweepIndex
    • upload_helper

      private final UploadHelper upload_helper
    • peer_database

      private final PeerDatabase peer_database
    • bad_piece_reported

      private int bad_piece_reported
    • next_rescan_piece

      private int next_rescan_piece
    • rescan_piece_time

      private long rescan_piece_time
    • last_eta

      private long last_eta
    • last_eta_smoothed

      private long last_eta_smoothed
    • last_eta_calculation

      private long last_eta_calculation
    • MAX_UDP_CONNECTIONS

      private static final int MAX_UDP_CONNECTIONS
      See Also:
    • PENDING_NAT_TRAVERSAL_MAX

      private static final int PENDING_NAT_TRAVERSAL_MAX
      See Also:
    • MAX_UDP_TRAVERSAL_COUNT

      private static final int MAX_UDP_TRAVERSAL_COUNT
      See Also:
    • PEER_NAT_TRAVERSE_DONE_KEY

      private static final String PEER_NAT_TRAVERSE_DONE_KEY
    • pending_nat_traversals

      private final Map<String,PEPeerTransport> pending_nat_traversals
    • udp_traversal_count

      private int udp_traversal_count
    • PENDING_HOLE_PUNCH_MAX

      private static final int PENDING_HOLE_PUNCH_MAX
      See Also:
    • pending_hole_punches

      private final Map<String,Object[]> pending_hole_punches
    • OUTBOUND_IGNORE_ADDRESSES_MAX

      private static final int OUTBOUND_IGNORE_ADDRESSES_MAX
      See Also:
    • outbound_ignore_addresses

      private final Map<PEPeerControlImpl.PeerCacheKey,Integer> outbound_ignore_addresses
    • RECONNECT_SEEDING_MIN

      private static final int RECONNECT_SEEDING_MIN
      See Also:
    • RECONNECT_DOWNLOADING_MIN

      private static final int RECONNECT_DOWNLOADING_MIN
      See Also:
    • CONNECT_FAIL_HISTORY_MAX

      private static final int CONNECT_FAIL_HISTORY_MAX
      See Also:
    • connect_fail_history

      private final Map<PEPeerControlImpl.PeerCacheKey,Long> connect_fail_history
    • UDP_RECONNECT_MAX

      private static final int UDP_RECONNECT_MAX
      See Also:
    • udp_reconnects

      private final Map<String,PEPeerTransport> udp_reconnects
    • UDP_RECONNECT_MIN_MILLIS

      private static final int UDP_RECONNECT_MIN_MILLIS
      See Also:
    • last_udp_reconnect_mono

      private long last_udp_reconnect_mono
    • prefer_udp

      private boolean prefer_udp
    • PREFER_UDP_BLOOM_SIZE

      private static final int PREFER_UDP_BLOOM_SIZE
      See Also:
    • prefer_udp_bloom

      private volatile BloomFilter prefer_udp_bloom
    • upload_diabled

      private volatile boolean upload_diabled
    • download_diabled

      private volatile boolean download_diabled
    • upload_limited_rate_group

      private final LimitedRateGroup upload_limited_rate_group
    • download_limited_rate_group

      private final LimitedRateGroup download_limited_rate_group
    • partition_id

      private final int partition_id
    • is_metadata_download

      private final boolean is_metadata_download
    • metadata_infodict_size

      private int metadata_infodict_size
    • finish_in_progress

      private DiskManager.DownloadEndedProgress finish_in_progress
    • last_seed_disconnect_time

      private long last_seed_disconnect_time
    • naughty_fast_extension_bloom

      private final BloomFilter naughty_fast_extension_bloom
    • asfe_activated

      private volatile boolean asfe_activated
    • my_peer

      private final PEPeerControlImpl.MyPeer my_peer
    • HP_BLOOM_FILTER_SIZE

      private static final int HP_BLOOM_FILTER_SIZE
      See Also:
    • hp_bloom

      private volatile BloomFilter hp_bloom
    • FE_EVENT_LIMIT

      private static final int FE_EVENT_LIMIT
      See Also:
    • optimisticDisconnectCount

      private int optimisticDisconnectCount
  • Constructor Details

  • Method Details