00001 #ifndef _SETUP_H_ 00002 #define _SETUP_H_ 00003 00004 #include <iostream> 00005 #include <sstream> 00006 #include <string> 00007 #include <set> 00008 00009 #include "../db/DBConnection.h" 00010 #include "State.h" 00011 00012 using namespace std; 00013 00017 class Setup{ 00018 00019 private : 00020 string name; 00021 bool locked; 00022 vector<State*> states; 00023 00024 bool isValid(); 00025 bool setupExist(); 00026 00027 public: 00031 Setup(string n); 00032 ~Setup(); 00033 Setup(Setup& s); 00034 00038 void addState(State* s); 00043 vector<State*> getStates(); 00044 00049 string getName(); 00050 00054 void lock(); 00059 bool isLocked(); 00060 00066 static Setup* getSetup(string n) throw (ILCException::Exception); 00067 00072 static vector<string> getSetupNames() throw (ILCException::Exception); 00073 00078 static vector<string> getUnusedSetupNames() throw (ILCException::Exception); 00079 00084 static void deleteSetup(string n) throw (ILCException::Exception); 00085 00089 void upload() throw (ILCException::Exception); 00090 00095 void recursiveUpload(); 00096 00102 static void registerRun(int runNum, string setupN) throw (ILCException::Exception); 00103 00109 static Setup* getSetupFromRun(int runN) throw (ILCException::Exception); 00110 00111 }; 00112 #endif