package edu.ysu.itrace.solvers; import edu.ysu.itrace.gaze.IGazeResponse; /** * Defines a minimal interface for passing data to a solver. */ public interface ISolver { // This interface is intended to provide only general // functionality needed in the event loop. Additional // features, such as retrieving results, should be // defined in another, more specific, interface. /** * A name of the solver suitable to display to the user. */ public String friendlyName(); /** * Configure the export filename. */ public void config(String sessionID, String devUsername); /** * Launch dialog to display the export filename. */ public void displayExportFile(); /** * Any initialization work with side effects, such as opening files. This * method should very probably be called before calling process or dispose. */ public void init(); /** * Called to process new gazes. */ public void process(IGazeResponse response); /** * Frees any resources. It is very likely a bad idea to process new data * after calling dispose. Not sure if we need this, either. */ public void dispose(); }