package dailyBot.model;
import java.util.ArrayList;
import java.util.concurrent.locks.ReentrantLock;
import dailyBot.control.DailyLog;
import dailyBot.model.Strategy.StrategyId;
public abstract class StrategySystem
{
protected StrategyId[] strategies;
protected ReentrantLock systemLock = new ReentrantLock(true);
protected abstract void checkConsistency();
protected abstract ArrayList<StrategySignal> read(String[] input);
protected abstract void process(String[] read);
public void lockSystem()
{
systemLock.lock();
}
public void unlockSystem()
{
systemLock.unlock();
}
public void startProcessing(String[] read)
{
try
{
process(read);
}
catch(Exception e)
{
DailyLog.logError(e.getMessage() + ", error en Iniciar procesamiento al procesar en: "
+ getClass().getCanonicalName());
}
}
public abstract void startThreads();
public abstract void writePersistence();
}