package com.plectix.simulator.staticanalysis.stories.compressions;
import com.plectix.simulator.staticanalysis.stories.TypeOfWire;
import com.plectix.simulator.staticanalysis.stories.storage.EventInterface;
import com.plectix.simulator.staticanalysis.stories.storage.StoryStorageException;
/*package*/final class QueueEntry {
/**
* Event in queue
*/
private final EventInterface event;
/**
* Information to backtrack
*
* @queueSize size queue reduce to
* @stackSize size stack reduce to
* @queuePosIdx position in queue set to
*/
private final int queueSize;
private final int stackSize;
private final int queuePosIdx;
/**
* For current event in queue - current wire index in event
*/
public int currentWireIdx = 0;
public QueueEntry(EventInterface event, int queueSize, int stackSize,
int queuePosIdx) {
this.event = event;
this.queueSize = queueSize;
this.stackSize = stackSize;
this.queuePosIdx = queuePosIdx;
}
public EventInterface getEvent() {
return event;
}
public final int getWireCount() throws StoryStorageException {
return event.getAtomicEventCount();
}
public final TypeOfWire getWireType() throws StoryStorageException {
return event.getWireKey(currentWireIdx).getTypeOfWire();
}
public final int getQueueSize() {
return queueSize;
}
public final int getQueuePosIdx() {
return queuePosIdx;
}
public final int getStackSize() {
return stackSize;
}
}