package base;

import signals.Signal;
import descriptors.SignalDesc;

/** Interface for objects that read signals from somewhere */
public interface SignalFetcher {
	
	/** Gets the signal described by signalDescriptor */
	public Signal getSig(SignalDesc signalDescriptor);
	
	/** Gets the signal described by the given path */	 
	public Signal getSig(String path);
	
	/** Gets the cache root that the fetcher will save the fetched signals at */
	public String getCacheRoot();
	
	/** Determine if the fetcher will save the signals fetched to disk */
	public boolean isCachingToDisk();
	
	/** Remove a signal from memory cache */
	public void freeFromMemory(Signal sig);
		
}
