add explicit event list

This commit is contained in:
2021-02-27 12:26:07 +00:00
parent d65803a4b7
commit b69e1886b9
18 changed files with 560 additions and 184 deletions

View File

@ -15,6 +15,7 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import com.minres.scviewer.database.EventEntry;
import com.minres.scviewer.database.EventKind;
import com.minres.scviewer.database.HierNode;
import com.minres.scviewer.database.IEvent;
@ -35,7 +36,7 @@ abstract class AbstractTxStream extends HierNode implements IWaveform {
private Integer maxConcurrency;
private IEventList<Long, IEvent[]> events;
private IEventList events;
private List<RelationType> usedRelationsList;
@ -71,9 +72,9 @@ abstract class AbstractTxStream extends HierNode implements IWaveform {
}
@Override
public IEventList<Long, IEvent[]> getEvents(){
public IEventList getEvents(){
if(events==null){
events=new EventList<>();
events=new EventList();
for(Entry<Integer, ITx> entry:getTransactions().entrySet()){
putEvent(new TxEvent(EventKind.BEGIN, entry.getValue()));
putEvent(new TxEvent(EventKind.END, entry.getValue()));
@ -114,11 +115,11 @@ abstract class AbstractTxStream extends HierNode implements IWaveform {
@Override
public IEvent[] getEventsBeforeTime(Long time) {
Entry<Long, IEvent[]> e = events.floorEntry(time);
EventEntry e = events.floorEntry(time);
if(e==null)
return new IEvent[]{};
else
return events.floorEntry(time).getValue();
return events.floorEntry(time).events;
}
@Override