Package net.i2p.router.transport.udp
Class TimedWeightedPriorityMessageQueue
java.lang.Object
net.i2p.router.transport.udp.TimedWeightedPriorityMessageQueue
- All Implemented Interfaces:
MessageQueue
,OutboundMessageFragments.ActiveThrottle
class TimedWeightedPriorityMessageQueue
extends Object
implements MessageQueue, OutboundMessageFragments.ActiveThrottle
Weighted priority queue implementation for the outbound messages, coupled
with code to fail messages that expire.
WARNING - UNUSED since 0.6.1.11
See comments in DummyThrottle.java and mtn history ca. 2006-02-19
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
-
Constructor Summary
ConstructorDescriptionTimedWeightedPriorityMessageQueue
(RouterContext ctx, int[] priorityLimits, int[] weighting, TimedWeightedPriorityMessageQueue.FailedListener lsnr) Build up a new queue -
Method Summary
-
Constructor Details
-
TimedWeightedPriorityMessageQueue
public TimedWeightedPriorityMessageQueue(RouterContext ctx, int[] priorityLimits, int[] weighting, TimedWeightedPriorityMessageQueue.FailedListener lsnr) Build up a new queue- Parameters:
priorityLimits
- ordered breakpoint for the different message priorities, with the lowest limit first.weighting
- how much to prefer a given priority grouping. specifically, this means how many messages in this queue should be pulled off in a row before moving on to the next.
-
-
Method Details
-
add
Description copied from interface:MessageQueue
Add on a new message to the queue- Specified by:
add
in interfaceMessageQueue
-
getNext
Grab the next message out of the next queue. This only advances the _nextQueue var after pushing _weighting[currentQueue] messages or the queue is empty. This call blocks until either a message becomes available or the queue is shut down.- Specified by:
getNext
in interfaceMessageQueue
- Parameters:
blockUntil
- expiration, or -1 if indefinite- Returns:
- message dequeued, or null if the queue was shut down
-
shutdown
public void shutdown() -
choke
- Specified by:
choke
in interfaceOutboundMessageFragments.ActiveThrottle
-
unchoke
- Specified by:
unchoke
in interfaceOutboundMessageFragments.ActiveThrottle
-
isChoked
- Specified by:
isChoked
in interfaceOutboundMessageFragments.ActiveThrottle
-