public class RandomDelayMessageEngine extends DelayMessageEngine
The RandomDelayMessageEngine
is a random alternative to JBotSim's default MessageEngine
.
For each new message, a random delay is drawn in [0,DelayMessageEngine.getDelay()
).
Modifier and Type | Field and Description |
---|---|
protected Random |
r |
currentTime, DEFAULT_DELAY, DELAY_INSTANT, delayedMessages
debug, topology
Constructor and Description |
---|
RandomDelayMessageEngine(Topology topology,
int maxDelay)
Creates a
RandomDelayMessageEngine object. |
Modifier and Type | Method and Description |
---|---|
protected int |
getDelayForMessage(Message message)
Computes the delay which should be applied to the provided
Message . |
protected int |
getDeliveryDateForMessage(Message message)
Computes the delivery date (round number) for the provided
Message . |
protected boolean |
noCachingNeeded(List<Message> newMessages)
Tests whether the provided list of
Messages should be cached or not. |
protected Map<Integer,List<Message>> |
prepareNewMessagesForCaching(List<Message> newMessages)
|
cacheMessageAtTime, cacheMessagesAtTime, cacheNewMessages, disableLinksContinuityChecks, getCurrentDeliveryDate, getDelay, getMessagesForCurrentDate, getMessagesToSend, onClock, removeIrrelevantMessages, reset, setDelay, setSpeed, shouldCheckLinksContinuity
clearMailboxes, clearMailboxes, clearSendQueues, clearSendQueues, collectMessages, collectMessages, collectMessages, deliverMessage, deliverMessages, isMessageStillRelevant, removeIrrelevantMessages, removeNextMessageIfIrrelevant, requeueIfNeeded, requeueMessage, setDebug, setTopology
protected Random r
public RandomDelayMessageEngine(Topology topology, int maxDelay)
Creates a RandomDelayMessageEngine
object.
topology
- the Topology
to use.maxDelay
- the maximum number of rounds to apply as a delay to the message delivery, as an integer.protected boolean noCachingNeeded(List<Message> newMessages)
DelayMessageEngine
Tests whether the provided list of Messages
should be cached or not.
noCachingNeeded
in class DelayMessageEngine
newMessages
- a List
containing new Messages
.true
if the provided messages should not be cached.protected Map<Integer,List<Message>> prepareNewMessagesForCaching(List<Message> newMessages)
DelayMessageEngine
prepareNewMessagesForCaching
in class DelayMessageEngine
newMessages
- a List
containing new Messages
.Map
containing Lists
of Messages
indexed by the date at which they
should be delivered.DelayMessageEngine.getCurrentDeliveryDate()
protected int getDeliveryDateForMessage(Message message)
Computes the delivery date (round number) for the provided Message
.
message
- the Message
needing a delivery date.protected int getDelayForMessage(Message message)
DelayMessageEngine
Computes the delay which should be applied to the provided Message
.
getDelayForMessage
in class DelayMessageEngine
message
- the Message
needing a delay.