continue;
}
if (decoded instanceof DDF_MarketBase) {
final DDF_MarketBase marketMessage =
(DDF_MarketBase) decoded;
final long time = marketMessage.getTime().asMillisUTC();
if (time > maxTime) {
// Auto-generated timestamp, skip if not previously
// in range
if (!inRange) {
continue;
}
} else {
// Before range start, skip
if (start != null && time <= start.getTime()) {
continue;
}
// After range end, completed
if (end != null && time >= end.getTime()) {
return;
}
inRange = true;
}
if (listener != null) {
listener.messageProcessed(decoded, message);
}
if (speed > 0) {
if (baseline == 0) {
// Set baseline time difference
baseline = time;
adjustment = System.currentTimeMillis() - baseline;
} else {
final double delay = (time - baseline) * speed;
final double elapsed =
(System.currentTimeMillis() - (baseline + adjustment))
* speed;
if (delay > elapsed) {
try {
Thread.sleep((long) (delay - elapsed));
} catch (final InterruptedException e) {
e.printStackTrace();
}
}
}
}
// log.debug(marketMessage.toString());
if (marketplace != null) {
if (symbols.size() == 0
|| symbols.contains(marketMessage.getSymbol()
.getName())) {
marketplace.make(marketMessage);
}
}