00001
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00033
00034 #ifndef GROOVX_VISX_EXPTDRIVER_H_UTC20050626084016_DEFINED
00035 #define GROOVX_VISX_EXPTDRIVER_H_UTC20050626084016_DEFINED
00036
00037 #include "io/io.h"
00038
00039 #include "rutz/tracer.h"
00040
00041 #include "visx/elementcontainer.h"
00042
00043 struct Tcl_Interp;
00044
00045 namespace rutz
00046 {
00047 class fstring;
00048 template <class T> class fwd_iter;
00049 }
00050
00051 namespace Gfx
00052 {
00053 class Canvas;
00054 }
00055
00056 namespace nub
00057 {
00058 template <class T> class ref;
00059 template <class T> class soft_ref;
00060 }
00061
00063
00069
00070
00071 class ExptDriver : public ElementContainer
00072 {
00073 private:
00075 ExptDriver(const ExptDriver&);
00077 ExptDriver& operator=(const ExptDriver&);
00078
00080 ExptDriver();
00081
00082 public:
00083
00085 static rutz::tracer tracer;
00086
00088 static ExptDriver* make() { return new ExptDriver; }
00089
00091 virtual ~ExptDriver() throw();
00092
00093 virtual io::version_id class_version_id() const;
00094 virtual void read_from(io::reader& reader);
00095 virtual void write_to(io::writer& writer) const;
00096
00097
00098
00099
00100
00101 virtual const nub::soft_ref<Toglet>& getWidget() const;
00102
00103 virtual void vxRun(Element& parent);
00104
00106 virtual void vxEndTrialHook();
00107
00109 virtual void vxAllChildrenFinished();
00110
00112
00114
00116 const rutz::fstring& getAutosaveFile() const;
00118 void setAutosaveFile(const rutz::fstring& str);
00119
00121 int getAutosavePeriod() const;
00122
00124 void setAutosavePeriod(int period);
00125
00127 const rutz::fstring& getFilePrefix() const;
00128
00130 void setFilePrefix(const rutz::fstring& str);
00131
00133 void claimLogFile() const;
00134
00136 const char* getInfoLog() const;
00137
00139 rutz::fstring getDoWhenComplete() const;
00140
00142 void setDoWhenComplete(const rutz::fstring& script);
00143
00145 void setWidget(const nub::soft_ref<Toglet>& widg);
00146
00148 void edBeginExpt();
00149
00151 void edResumeExpt();
00152
00153 #if 0
00155 void pause();
00156 #endif
00157
00160 void storeData();
00161
00162 private:
00163 class Impl;
00164
00165 Impl* const rep;
00166 };
00167
00168 static const char __attribute__((used)) vcid_groovx_visx_exptdriver_h_utc20050626084016[] = "$Id: exptdriver.h 10065 2007-04-12 05:54:56Z rjpeters $ $HeadURL: file:
00169 #endif // !GROOVX_VISX_EXPTDRIVER_H_UTC20050626084016_DEFINED