#ifndef BASEDAQ_H_ #define BASEDAQ_H_ #include #include #include #include #include class BaseDAQ{ public: static const int STOP = -1; static const int READY = 0; static const int IDLE = 1; static const int RUN = 2; protected: int currentState; int nextState; bool changeStateFlag = false; BaseProtocol *socket; BaseArchiver *archiver; BaseProvider *provider; BaseChecker *checker; BasePacket *packet; BaseMonitor *monitor; public: void setProtocol(BaseProtocol &socket){this->socket = &socket;} void setArchiver(BaseArchiver &archiver){this->archiver = &archiver;} void setProvider(BaseProvider &provider){this->provider = &provider;} void setChecker(BaseChecker &checker){this->checker = &checker;} void setPacket(BasePacket &packet){this->packet = &packet;} void setMonitor(BaseMonitor &monitor){this->monitor = &monitor;} void setCurrentState(int currentState){this->currentState = currentState;} void setNextState(int nextState){this->nextState = nextState;} void setChangeStateFlag(bool flag){this->changeStateFlag = flag;} BaseProtocol * getSocketPtr(){return this->socket;} BaseArchiver *getArchiverPtr(){return this->archiver;} BaseProvider * getProviderPtr(){return this->provider;} BaseChecker * getCheckerPtr(){return this->checker;} BasePacket * getPacketPtr(){return this->packet;} BaseMonitor * getMonitorPtr(){return this->monitor;} int getCurrentState(){return this->currentState;} int getNextState(){return this->nextState;} int getChangeStateFlag(){return this->changeStateFlag;} virtual void init() = 0; virtual void start(int initialState) = 0; virtual void stop() = 0; virtual void switchState(const int) = 0; virtual int deliverPacket() = 0; virtual ~BaseDAQ(){ delete socket; delete provider; delete archiver; delete checker; delete packet; delete monitor; } }; #endif /* BASEDAQ_H_ */