Package com.biglybt.core.networkmanager
Class NetworkManager
java.lang.Object
com.biglybt.core.networkmanager.NetworkManager
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Byte stream match filter for routing.static interface
Listener for routing events. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Core
static final int
static final int
static final int
private TransferProcessor
(package private) static int
static boolean
static boolean
private static final NetworkManager
private TransferProcessor
(package private) static boolean
private TransferProcessor
(package private) static int
(package private) static int
(package private) static int
(package private) static int
(package private) static int
(package private) static int
static boolean
private final List<ReadController>
static boolean
(package private) static boolean
(package private) static boolean
static final int
private TransferProcessor
(package private) static boolean
private final List<WriteController>
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addRateLimiter
(NetworkConnectionBase peer_connection, LimitedRateGroup group, boolean upload) void
addReadEntity
(RateControlledEntity entity, int partition_id) Add a download entity for read processing.void
addWriteEntity
(RateControlledEntity entity, int partition_id) Add an upload entity for write processing.bindTransport
(Transport transport, MessageStreamEncoder encoder, MessageStreamDecoder decoder) void
Cancel a request for inbound connection routing.createConnection
(ConnectionEndpoint target, MessageStreamEncoder encoder, MessageStreamDecoder decoder, boolean connect_with_crypto, boolean allow_fallback, byte[][] shared_secrets) Create a new unconnected remote network connection (for outbound-initiated connections).void
downgradeTransferProcessing
(NetworkConnectionBase peer_connection) Downgrade the given connection back to a normal-speed network transfer handling.static boolean
getCryptoRequired
(int override_level) static int
This method is for display purposes only, the internal rate limiting is 10% higher than returned by this method!static int
static int
static int
getRateHandler
(boolean upload, boolean lan) getRateHandler
(NetworkConnectionBase peer_connection, boolean upload) static NetworkManager
Get the singleton instance of the network manager.void
initialize
(Core _core) static boolean
static boolean
(package private) static void
void
removeRateLimiter
(NetworkConnectionBase peer_connection, LimitedRateGroup group, boolean upload) boolean
removeReadEntity
(RateControlledEntity entity) Remove a download entity from read processing.boolean
Remove an upload entity from write processing.void
requestIncomingConnectionRouting
(NetworkManager.ByteMatcher matcher, NetworkManager.RoutingListener listener, MessageStreamFactory factory) Request the acceptance and routing of new incoming connections that match the given initial byte sequence.void
startTransferProcessing
(NetworkConnectionBase peer_connection) Register peer connection for network upload and download handling.void
stopTransferProcessing
(NetworkConnectionBase peer_connection) Cancel network upload and download handling for the given connection.void
upgradeTransferProcessing
(NetworkConnectionBase peer_connection, int partition_id) Upgrade the given connection to high-speed network transfer handling.
-
Field Details
-
UNLIMITED_RATE
public static final int UNLIMITED_RATE- See Also:
-
instance
-
max_download_rate_bps
static int max_download_rate_bps -
external_max_download_rate_bps
static int external_max_download_rate_bps -
max_upload_rate_bps_normal
static int max_upload_rate_bps_normal -
max_upload_rate_bps_seeding_only
static int max_upload_rate_bps_seeding_only -
max_upload_rate_bps
static int max_upload_rate_bps -
lan_rate_enabled
static boolean lan_rate_enabled -
max_lan_upload_rate_bps
static int max_lan_upload_rate_bps -
max_lan_download_rate_bps
static int max_lan_download_rate_bps -
seeding_only_mode_allowed
static boolean seeding_only_mode_allowed -
seeding_only_mode
static boolean seeding_only_mode -
REQUIRE_CRYPTO_HANDSHAKE
public static boolean REQUIRE_CRYPTO_HANDSHAKE -
INCOMING_HANDSHAKE_FALLBACK_ALLOWED
public static boolean INCOMING_HANDSHAKE_FALLBACK_ALLOWED -
OUTGOING_HANDSHAKE_FALLBACK_ALLOWED
public static boolean OUTGOING_HANDSHAKE_FALLBACK_ALLOWED -
INCOMING_CRYPTO_ALLOWED
public static boolean INCOMING_CRYPTO_ALLOWED -
USE_REQUEST_LIMITING
static boolean USE_REQUEST_LIMITING -
core
-
write_controllers
-
read_controllers
-
upload_processor
-
download_processor
-
lan_upload_processor
-
lan_download_processor
-
CRYPTO_OVERRIDE_NONE
public static final int CRYPTO_OVERRIDE_NONE- See Also:
-
CRYPTO_OVERRIDE_REQUIRED
public static final int CRYPTO_OVERRIDE_REQUIRED- See Also:
-
CRYPTO_OVERRIDE_NOT_REQUIRED
public static final int CRYPTO_OVERRIDE_NOT_REQUIRED- See Also:
-
-
Constructor Details
-
NetworkManager
private NetworkManager()
-
-
Method Details
-
getWriteControllers
-
isLANRateEnabled
public static boolean isLANRateEnabled() -
getMinMssSize
public static int getMinMssSize() -
refreshRates
static void refreshRates() -
isSeedingOnlyUploadRate
public static boolean isSeedingOnlyUploadRate() -
getMaxUploadRateBPSNormal
public static int getMaxUploadRateBPSNormal() -
getMaxUploadRateBPSSeedingOnly
public static int getMaxUploadRateBPSSeedingOnly() -
getMaxDownloadRateBPS
public static int getMaxDownloadRateBPS()This method is for display purposes only, the internal rate limiting is 10% higher than returned by this method! -
getCryptoRequired
public static boolean getCryptoRequired(int override_level) -
initialize
-
getSingleton
Get the singleton instance of the network manager.- Returns:
- the network manager
-
createConnection
public NetworkConnection createConnection(ConnectionEndpoint target, MessageStreamEncoder encoder, MessageStreamDecoder decoder, boolean connect_with_crypto, boolean allow_fallback, byte[][] shared_secrets) Create a new unconnected remote network connection (for outbound-initiated connections).- Parameters:
remote_address
- to connect toencoder
- default message stream encoder to use for the outgoing queuedecoder
- default message stream decoder to use for the incoming queue- Returns:
- a new connection
-
requestIncomingConnectionRouting
public void requestIncomingConnectionRouting(NetworkManager.ByteMatcher matcher, NetworkManager.RoutingListener listener, MessageStreamFactory factory) Request the acceptance and routing of new incoming connections that match the given initial byte sequence.- Parameters:
matcher
- initial byte sequence used for routinglistener
- for handling new inbound connectionsfactory
- to use for creating default stream encoder/decoders
-
bindTransport
public NetworkConnection bindTransport(Transport transport, MessageStreamEncoder encoder, MessageStreamDecoder decoder) -
cancelIncomingConnectionRouting
Cancel a request for inbound connection routing.- Parameters:
matcher
- byte sequence originally used to register
-
addWriteEntity
Add an upload entity for write processing.- Parameters:
entity
- to add
-
removeWriteEntity
Remove an upload entity from write processing.- Parameters:
entity
- to remove
-
addReadEntity
Add a download entity for read processing.- Parameters:
entity
- to add
-
removeReadEntity
Remove a download entity from read processing.- Parameters:
entity
- to remove
-
getConnections
-
startTransferProcessing
Register peer connection for network upload and download handling. NOTE: The given max rate limits are ignored until the connection is upgraded. NOTE: The given max rate limits are ignored for LANLocal connections.- Parameters:
peer_connection
- to register for network transfer processingupload_group
- upload rate limit groupdownload_group
- download rate limit group
-
stopTransferProcessing
Cancel network upload and download handling for the given connection.- Parameters:
peer_connection
- to cancel
-
upgradeTransferProcessing
Upgrade the given connection to high-speed network transfer handling.- Parameters:
peer_connection
- to upgrade
-
downgradeTransferProcessing
Downgrade the given connection back to a normal-speed network transfer handling.- Parameters:
peer_connection
- to downgrade
-
getUploadProcessor
-
addRateLimiter
public void addRateLimiter(NetworkConnectionBase peer_connection, LimitedRateGroup group, boolean upload) -
removeRateLimiter
public void removeRateLimiter(NetworkConnectionBase peer_connection, LimitedRateGroup group, boolean upload) -
getRateHandler
-
getRateHandler
-