RefractiveIndex/src/AnalysisAdaptor.h

40 lines
826 B
C
Raw Normal View History

2012-01-24 15:13:07 +01:00
/*
~ author: dviid
~ contact: dviid@labs.ciid.dk
*/
#pragma once
#include "AbstractAnalysis.h"
#include "Poco/Thread.h"
#include "Poco/RunnableAdapter.h"
using Poco::Thread;
using Poco::RunnableAdapter;
class AnalysisAdaptor
{
public:
AnalysisAdaptor(AbstractAnalysis* analysis) : _analysis(analysis) {;}
virtual ~AnalysisAdaptor(){ delete _runnable; }
void start()
{
2012-02-11 18:54:46 +01:00
_runnable = new RunnableAdapter<AbstractAnalysis>(*_analysis, &AbstractAnalysis::do_synthesize);
2012-01-24 15:13:07 +01:00
_worker.start(*_runnable);
}
void stop()
{
_analysis->_state = STATE_STOP;
_worker.join();
}
protected:
AbstractAnalysis* _analysis;
Thread _worker; //
RunnableAdapter<AbstractAnalysis>* _runnable;
};