Newer
Older
#ifndef BASEDAQ_H_
#define BASEDAQ_H_
#include <Base_Monitor.h>
#include <Base_Protocol.h>
#include <Base_Archiver.h>
#include <Base_Provider.h>
namespace inaf::oasbo::DAQ{
class BaseDAQ {
enum Status {
STOP = -1,
READY = 0,
IDLE = 1,
RUN = 2
};
ConnectionProtocols::BaseProtocol *socket;
Archivers::BaseArchiver *archiver;
Providers::BaseProvider *provider;
Monitors::BaseMonitor *monitor;
void setProtocol(ConnectionProtocols::BaseProtocol &socket){this->socket = &socket;}
void setArchiver(Archivers::BaseArchiver &archiver){this->archiver = &archiver;}
void setProvider(Providers::BaseProvider &provider){this->provider = &provider;}
void setMonitor(Monitors::BaseMonitor &monitor){this->monitor = &monitor;}
void setCurrentState(Status currentState){this->currentState = currentState;}
void setNextState(Status nextState){this->nextState = nextState;}
void setChangeStateFlag(bool flag){this->changeStateFlag = flag;}
ConnectionProtocols::BaseProtocol * getSocketPtr(){return this->socket;}
Archivers::BaseArchiver *getArchiverPtr(){return this->archiver;}
Providers::BaseProvider * getProviderPtr(){return this->provider;}
Monitors::BaseMonitor * getMonitorPtr(){return this->monitor;}
Status getCurrentState(){return this->currentState;}
Status getNextState(){return this->nextState;}
int getChangeStateFlag(){return this->changeStateFlag;}
virtual void init() = 0;
virtual void start(Status initialState,PacketLib::BasePacket &) = 0;
virtual ~BaseDAQ(){
delete socket;
delete provider;
delete archiver;
delete monitor;
}
};