/**
* Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT
* All rights reserved. Use is subject to license terms. See LICENSE.TXT
*/
package org.diirt.datasource.timecache.util;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.SortedSet;
import java.util.TreeSet;
import org.diirt.datasource.timecache.Data;
import org.diirt.datasource.timecache.DataRequestThread;
import org.diirt.datasource.timecache.PVCache;
import org.diirt.datasource.timecache.PVCacheListener;
import org.diirt.datasource.timecache.PVCacheStatistics;
import org.diirt.util.time.TimeInterval;
public class PVCacheMock implements PVCache {
private List<PVCacheListener> listeners = Collections
.synchronizedList(new LinkedList<PVCacheListener>());
private final String channelName = "TEST-BTY0:RAMP2";
private final PVCacheStatistics stats = new PVCacheStatistics(channelName);
private IntervalsList completedIntervals = new IntervalsList();
private DataRequestThread storageThread;
/** {@inheritDoc} */
@Override
public void startLiveDataProcessing() {
// not handled in first version
}
/** {@inheritDoc} */
@Override
public void stopLiveDataProcessing() {
// not handled in first version
}
/** {@inheritDoc} */
@Override
public void addListener(PVCacheListener listener) {
if (listener != null)
listeners.add(listener);
}
/** {@inheritDoc} */
@Override
public void removeListener(PVCacheListener listener) {
if (listener != null)
listeners.remove(listener);
}
public void setStorageThread(DataRequestThread thread) {
this.storageThread = thread;
}
@Override
public DataRequestThread retrieveDataAsync(TimeInterval interval) {
return storageThread;
}
@Override
public SortedSet<Data> retrieveDataSync(TimeInterval interval) {
return new TreeSet<Data>();
}
public void addCompletedInterval(TimeInterval interval) {
if (interval != null)
completedIntervals.addToSelf(interval);
}
@Override
public IntervalsList getCompletedIntervalsList() {
return completedIntervals;
}
@Override
public void setStatisticsEnabled(boolean enabled) {
}
@Override
public boolean isStatisticsEnabled() {
return true;
}
@Override
public PVCacheStatistics getStatistics() {
return stats;
}
@Override
public boolean isProcessingSources() {
return false;
}
@Override
public String getChannelName() {
return channelName;
}
@Override
public void flush() {
}
}