package org.skywalking.apm.collector.worker.storage;
import java.util.Map;
/**
* @author pengys5
*/
public class SegmentPersistenceData extends Window<SegmentData> implements PersistenceData<SegmentData> {
private WindowData<SegmentData> lockedWindowData;
public SegmentData getOrCreate(String id) {
if (!lockedWindowData.containsKey(id)) {
lockedWindowData.put(id, new SegmentData(id));
}
return lockedWindowData.get(id);
}
public void hold() {
lockedWindowData = getCurrentAndHold();
}
public void release() {
lockedWindowData.release();
lockedWindowData = null;
}
public int size() {
return lockedWindowData.size();
}
public Map<String, SegmentData> asMap() {
return lockedWindowData.asMap();
}
}