in java/ws-server/src/main/java/com/epam/deltix/tbwg/webapp/utils/SpeedTestStream.java [55:126]
public static void loadData(DXTickStream stream, String name, long messages) {
PackageHeader header = new PackageHeader();
ObjectArrayList<BaseEntryInfo> list = new ObjectArrayList<>();
ObjectArrayList<BaseEntryInfo> snapshotList = new ObjectArrayList<>();
L2EntryNew[] l2EntriesBID = new L2EntryNew[20];
L2EntryNew[] l2EntriesASK = new L2EntryNew[20];
for (int i = 0; i < 20; i++) {
l2EntriesBID[i] = new L2EntryNew();
l2EntriesBID[i].setLevel((short) i);
l2EntriesBID[i].setSide(QuoteSide.BID);
l2EntriesBID[i].setQuoteId("HEJ");
l2EntriesASK[i] = new L2EntryNew();
l2EntriesASK[i].setLevel((short) i);
l2EntriesASK[i].setSide(QuoteSide.ASK);
l2EntriesASK[i].setQuoteId("HEJ");
}
snapshotList.addAll(Arrays.asList(l2EntriesASK));
snapshotList.addAll(Arrays.asList(l2EntriesBID));
L2EntryNew l2EntryNew = new L2EntryNew();
L2EntryUpdate l2EntryUpdate = new L2EntryUpdate();
l2EntryNew.setQuoteId("HEJ");
l2EntryNew.setSide(QuoteSide.BID);
l2EntryUpdate.setQuoteId("HEJ");
l2EntryUpdate.setSide(QuoteSide.BID);
list.add(l2EntryNew);
list.add(l2EntryUpdate);
TickLoader loader = stream.createLoader();
LoadingErrorListener listener = e -> System.out.println("Importing error: " + e.getMessage());
loader.addEventListener(listener);
String[] symbols = new String[]{"AAA", "BBB", "CCC", "DDD", "EEE"};
Random random = new Random(System.currentTimeMillis());
long time = System.currentTimeMillis() - 10 * messages;
for (long i = 1; i <= messages; i++, time+=10) {
header.setSymbol(symbols[random.nextInt(symbols.length)]);
header.setTimeStampMs(time);
if (i % 42 == 0) {
header.setEntries(snapshotList);
header.setPackageType(PackageType.VENDOR_SNAPSHOT);
for (int j = 0; j < 20; j++) {
l2EntriesBID[j].setIsImplied(false);
l2EntriesBID[j].setPrice(Decimal64Utils.fromDouble((1. + random.nextDouble()) * 1000));
l2EntriesBID[j].setSize(Decimal64Utils.fromDouble((1. + random.nextDouble()) * 1000));
l2EntriesASK[j].setIsImplied(false);
l2EntriesASK[j].setPrice(Decimal64Utils.fromDouble((1. + random.nextDouble()) * 1000));
l2EntriesASK[j].setSize(Decimal64Utils.fromDouble((1. + random.nextDouble()) * 1000));
}
} else {
header.setEntries(list);
header.setPackageType(PackageType.INCREMENTAL_UPDATE);
l2EntryNew.setLevel((short) random.nextInt(20));
l2EntryNew.setPrice(Decimal64Utils.fromDouble((1. + random.nextDouble()) * 1000));
l2EntryNew.setSize(Decimal64Utils.fromDouble((1. + random.nextDouble()) * 1000));
l2EntryUpdate.setLevel((short) random.nextInt(20));
l2EntryUpdate.setPrice(Decimal64Utils.fromDouble((1. + random.nextDouble()) * 1000));
l2EntryUpdate.setSize(Decimal64Utils.fromDouble((1. + random.nextDouble()) * 1000));
l2EntryUpdate.setAction(BookUpdateAction.DELETE);
}
loader.send(header);
}
loader.close();
}