Packages that use FIFOBandwidthLimiter.Request
Package
Description
Transport framework: the transport lifecycle and pool management, connection handling and bandwidth throttling for the transports (NTCP2 over TCP, SSU over UDP) that carry I2P messages between routers, plus NAT traversal via UPnP and GeoIP country lookups.
NTCP2, the TCP transport: framed, ratchet-encrypted and mutually authenticated connections between routers.
SSU2, the UDP transport: datagram sessions with Holepunch peer discovery, plus the older SSU compatibility code.
Uses of FIFOBandwidthLimiter.Request in net.i2p.router.transport
Classes in net.i2p.router.transport that implement FIFOBandwidthLimiter.RequestModifier and TypeClassDescriptionprivate static classA request that always succeeds without capacity.private static classOne bandwidth capacity request.Fields in net.i2p.router.transport with type parameters of type FIFOBandwidthLimiter.RequestModifier and TypeFieldDescription(package private) final List<FIFOBandwidthLimiter.Request> FIFOBandwidthLimiter.SimpleRequest.satisfiedBufferRequests satisfied in the same pass.Methods in net.i2p.router.transport that return FIFOBandwidthLimiter.RequestModifier and TypeMethodDescriptionFIFOBandwidthLimiter.requestInbound(int bytesIn, String purpose) Request some bytes.FIFOBandwidthLimiter.requestInbound(FIFOBandwidthLimiter.Request candidate, int bytesIn, String purpose) Request some bytes, reusing the given request if possible.FIFOBandwidthLimiter.requestOutbound(int bytesOut, int priority, String purpose) Request some bytes.FIFOBandwidthLimiter.requestOutbound(FIFOBandwidthLimiter.Request candidate, int bytesOut, int priority, String purpose) Request some bytes, reusing the given request if possible.Methods in net.i2p.router.transport with parameters of type FIFOBandwidthLimiter.RequestModifier and TypeMethodDescriptionvoidFIFOBandwidthLimiter.CompleteListener.complete(FIFOBandwidthLimiter.Request req) Notify the listener that the request completed.FIFOBandwidthLimiter.requestInbound(FIFOBandwidthLimiter.Request candidate, int bytesIn, String purpose) Request some bytes, reusing the given request if possible.FIFOBandwidthLimiter.requestOutbound(FIFOBandwidthLimiter.Request candidate, int bytesOut, int priority, String purpose) Request some bytes, reusing the given request if possible.Method parameters in net.i2p.router.transport with type arguments of type FIFOBandwidthLimiter.RequestModifier and TypeMethodDescriptionprivate final voidFIFOBandwidthLimiter.locked_satisfyInboundAvailable(List<FIFOBandwidthLimiter.Request> satisfied) We have limits, so iterate through the requests, allocating as much bandwidth as we can to those who have used what we have given them and are waiting for more (giving priority to the first ones who requested it).private final voidFIFOBandwidthLimiter.locked_satisfyInboundUnlimited(List<FIFOBandwidthLimiter.Request> satisfied) There are no limits, so just give every inbound request whatever they want.private final voidFIFOBandwidthLimiter.locked_satisfyOutboundAvailable(List<FIFOBandwidthLimiter.Request> satisfied) We have limits, so iterate through the requests, allocating as much bandwidth as we can to those who have used what we have given them and are waiting for more (giving priority to the first ones who requested it).private final voidFIFOBandwidthLimiter.locked_satisfyOutboundUnlimited(List<FIFOBandwidthLimiter.Request> satisfied) There are no limits, so just give every outbound request whatever they want.(package private) final voidFIFOBandwidthLimiter.refillBandwidthQueues(List<FIFOBandwidthLimiter.Request> buf, long bytesInbound, long bytesOutbound, long maxBurstIn, long maxBurstOut) More bytes are available - add them to the queue and satisfy any requests we can.private final voidFIFOBandwidthLimiter.satisfyInboundRequests(List<FIFOBandwidthLimiter.Request> satisfied) Satisfy the pending inbound requests with currently available bandwidth.private final voidFIFOBandwidthLimiter.satisfyOutboundRequests(List<FIFOBandwidthLimiter.Request> satisfied) Satisfy the pending outbound requests with currently available bandwidth.private final voidFIFOBandwidthLimiter.satisfyRequests(List<FIFOBandwidthLimiter.Request> buffer) Go through the queue, satisfying as many requests as possible (notifying each one satisfied that the request has been granted).private booleanFIFOBandwidthRefiller.updateQueues(List<FIFOBandwidthLimiter.Request> buffer, long now) Refills the queues and reports any change.Uses of FIFOBandwidthLimiter.Request in net.i2p.router.transport.ntcp
Fields in net.i2p.router.transport.ntcp with type parameters of type FIFOBandwidthLimiter.RequestModifier and TypeFieldDescriptionprivate final Set<FIFOBandwidthLimiter.Request> NTCPConnection._bwInRequestsRequests that were not granted immediately.private final Set<FIFOBandwidthLimiter.Request> NTCPConnection._bwOutRequestsOutstanding outbound bandwidth requests.Methods in net.i2p.router.transport.ntcp with parameters of type FIFOBandwidthLimiter.RequestModifier and TypeMethodDescriptionprivate voidNTCPConnection.addIBRequest(FIFOBandwidthLimiter.Request req) Tracks an inbound bandwidth request.private voidNTCPConnection.addOBRequest(FIFOBandwidthLimiter.Request req) Tracks an outbound bandwidth request.voidNTCPConnection.InboundListener.complete(FIFOBandwidthLimiter.Request req) voidNTCPConnection.OutboundListener.complete(FIFOBandwidthLimiter.Request req) (package private) voidNTCPConnection.queuedRecv(ByteBuffer buf, FIFOBandwidthLimiter.Request req) We have read the data in the buffer, but we can't process it locally yet, because we're choked by the bandwidth limiter.private voidNTCPConnection.queuedWrite(ByteBuffer buf, FIFOBandwidthLimiter.Request req) Queue a buffer for writing once its bandwidth has been allocated, the outbound counterpart ofNTCPConnection.queuedRecv(ByteBuffer, FIFOBandwidthLimiter.Request).private booleanNTCPConnection.removeIBRequest(FIFOBandwidthLimiter.Request req) Hands off ownership of an in-flight read bandwidth request back to the caller.private voidNTCPConnection.removeOBRequest(FIFOBandwidthLimiter.Request req) Stops tracking an outbound bandwidth request.Uses of FIFOBandwidthLimiter.Request in net.i2p.router.transport.udp
Fields in net.i2p.router.transport.udp declared as FIFOBandwidthLimiter.RequestModifier and TypeFieldDescriptionprivate FIFOBandwidthLimiter.RequestUDPReceiver._bandwidthRequestReused inbound bandwidth request, only touched on the runner thread.Fields in net.i2p.router.transport.udp with type parameters of type FIFOBandwidthLimiter.RequestModifier and TypeFieldDescriptionprivate final AtomicReference<FIFOBandwidthLimiter.Request> UDPPacket._bandwidthRequestThe bandwidth reservation for sending.Methods in net.i2p.router.transport.udp that return FIFOBandwidthLimiter.Request