00001 #ifndef SCTTEST_HIGHLEVELAPI_H 00002 #define SCTTEST_HIGHLEVELAPI_H 00003 00004 #include <string> 00005 #include <memory> 00006 #include <ipc/object.h> 00007 #include <boost/shared_ptr.hpp> 00008 #include "ModuleData.h" 00009 #include "SctTestApi.hh" 00010 00011 using std::string; 00012 00013 namespace SctData { 00014 class ModuleConfiguration; 00015 class ConfigurationVariable; 00016 } 00017 class TestData; 00018 00019 // Obsolete? extern IPCServer ipcServer; 00020 00021 namespace SctTest { 00022 00023 class HighLevelApi : public IPCNamedObject<POA_SctTestApi::HighLevelApi> { 00024 public: 00025 static HighLevelApi& instance(); 00026 00027 // "Handy" methods: 00028 // 00033 void handy_setModuleSerial(const string & serial); 00034 string handy_getModuleSerial() const; 00035 00040 void handy_setDataFile(const string & file); 00041 string handy_getDataFile() const; 00042 00047 void handy_setXmlSummaryFile(const string & file); 00048 string handy_getXmlSummaryFile() const; 00049 00050 //CORBA methods 00051 virtual void setDataFile (const char * file); 00052 virtual char * getDataFile (); 00053 virtual void setXmlSummaryFile (const char * file); 00054 virtual char * getXmlSummaryFile (); 00055 virtual void setModuleSerial (const char * serial); 00056 virtual char * getModuleSerial (); 00057 virtual void fullBypass(); 00058 virtual void timeWalk(); 00059 virtual void strobeDelay(); 00060 virtual void threePointGain(); 00061 virtual void responseCurve(); 00062 virtual void noiseOccupancy(); 00063 virtual void trim(); 00064 virtual void pipeline(); 00065 virtual void shutdown() {}; 00066 00067 private: 00068 HighLevelApi(); 00069 00074 void getConfig(string serial); 00075 void addAndGetConfig(string serial); 00076 void publishTest(TestData& t) const; 00077 string getFileName(const TestInfo& info, unsigned int scanNumber) const; 00078 void doTest(const TestInfo& info, TestData& data, const SctData::ConfigurationVariable& var) const; 00079 void publishScan(const TestInfo& info, unsigned int scanNumber, const SctData::ConfigurationVariable& scan_variable, const SctData::ModuleConfiguration& config) const; 00080 00081 string serial; 00082 string xmlFile; 00083 ModuleData data; 00084 boost::shared_ptr<SctData::ModuleConfiguration> config; 00085 }; 00086 } 00087 00088 #endif //SCTTEST_HIGHLEVELAPI_H