public ClientRequestScheduler(boolean forInserts, boolean forSSKs, boolean forRT, RandomSource random, RequestStarter starter, Node node, NodeClientCore core, String name, ClientContext context) {
this.isInsertScheduler = forInserts;
this.isSSKScheduler = forSSKs;
this.isRTScheduler = forRT;
schedTransient = new KeyListenerTracker(forInserts, forSSKs, forRT, random, this, null, false);
this.datastoreChecker = core.storeChecker;
this.starter = starter;
this.random = random;
this.node = node;
this.clientContext = context;
selector = new ClientRequestSelector(forInserts, forSSKs, forRT, this);
this.name = name;
this.choosenPriorityScheduler = PRIORITY_HARD;
if(!forInserts) {
offeredKeys = new OfferedKeysList(core, random, (short)0, forSSKs, forRT);
} else {
offeredKeys = null;
}
jobRunner = clientContext.jobRunner;
}