added timeout facility for musrfit, musrview, musrt0. Adopted musredit/musrgui accordingly.
This commit is contained in:
@@ -115,6 +115,8 @@ ClassImpQ(PMusrCanvas)
|
||||
*/
|
||||
PMusrCanvas::PMusrCanvas()
|
||||
{
|
||||
fTimeout = 0;
|
||||
|
||||
fScaleN0AndBkg = true;
|
||||
fValid = false;
|
||||
fDifferenceView = false;
|
||||
@@ -179,6 +181,8 @@ PMusrCanvas::PMusrCanvas(const Int_t number, const Char_t* title,
|
||||
const Bool_t batch) :
|
||||
fBatchMode(batch), fPlotNumber(number)
|
||||
{
|
||||
fTimeout = 0;
|
||||
|
||||
fMultiGraphData = 0;
|
||||
fMultiGraphDiff = 0;
|
||||
|
||||
@@ -229,6 +233,8 @@ PMusrCanvas::PMusrCanvas(const Int_t number, const Char_t* title,
|
||||
fPlotNumber(number), fFourier(fourierDefault),
|
||||
fMarkerList(markerList), fColorList(colorList)
|
||||
{
|
||||
fTimeout = 0;
|
||||
|
||||
fMultiGraphData = 0;
|
||||
fMultiGraphDiff = 0;
|
||||
|
||||
@@ -260,6 +266,10 @@ PMusrCanvas::PMusrCanvas(const Int_t number, const Char_t* title,
|
||||
PMusrCanvas::~PMusrCanvas()
|
||||
{
|
||||
// cleanup
|
||||
if (fTimeoutTimer) {
|
||||
delete fTimeoutTimer;
|
||||
fTimeoutTimer = 0;
|
||||
}
|
||||
if (fCurrentFourierPhaseText) {
|
||||
delete fCurrentFourierPhaseText;
|
||||
fCurrentFourierPhaseText = 0;
|
||||
@@ -412,6 +422,32 @@ void PMusrCanvas::SetMsrHandler(PMsrHandler *msrHandler)
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// SetTimeout (public)
|
||||
//--------------------------------------------------------------------------
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* \param timeout after which the done signal shall be emitted. Given in seconds
|
||||
*/
|
||||
void PMusrCanvas::SetTimeout(Int_t timeout)
|
||||
{
|
||||
fTimeout = timeout;
|
||||
|
||||
if (fTimeout <= 0)
|
||||
return;
|
||||
|
||||
if (fTimeoutTimer) {
|
||||
delete fTimeoutTimer;
|
||||
fTimeoutTimer = 0;
|
||||
}
|
||||
fTimeoutTimer = new TTimer();
|
||||
|
||||
fTimeoutTimer->Connect("Timeout()", "PMusrCanvas", this, "Done()");
|
||||
|
||||
fTimeoutTimer->Start(1000*fTimeout, kTRUE);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// UpdateParamTheoryPad (public)
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
@@ -247,6 +247,8 @@ ClassImpQ(PMusrT0)
|
||||
*/
|
||||
PMusrT0::PMusrT0()
|
||||
{
|
||||
fTimeout = 0;
|
||||
|
||||
fValid = false;
|
||||
|
||||
fStatus = 0; // default is quit locally
|
||||
@@ -286,6 +288,8 @@ PMusrT0::PMusrT0()
|
||||
*/
|
||||
PMusrT0::PMusrT0(PMusrT0Data &data) : fMusrT0Data(data)
|
||||
{
|
||||
fTimeout = 0;
|
||||
|
||||
fValid = true;
|
||||
|
||||
fStatus = 0; // default is quit locally
|
||||
@@ -568,6 +572,10 @@ PMusrT0::PMusrT0(PMusrT0Data &data) : fMusrT0Data(data)
|
||||
*/
|
||||
PMusrT0::~PMusrT0()
|
||||
{
|
||||
if (fTimeoutTimer) {
|
||||
delete fTimeoutTimer;
|
||||
fTimeoutTimer = 0;
|
||||
}
|
||||
if (fHisto) {
|
||||
delete fHisto;
|
||||
fHisto = 0;
|
||||
@@ -702,6 +710,32 @@ void PMusrT0::Quit()
|
||||
Done(0);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// SetTimeout (public)
|
||||
//--------------------------------------------------------------------------
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* \param timeout after which the done signal shall be emitted. Given in seconds
|
||||
*/
|
||||
void PMusrT0::SetTimeout(Int_t timeout)
|
||||
{
|
||||
fTimeout = timeout;
|
||||
|
||||
if (fTimeout <= 0)
|
||||
return;
|
||||
|
||||
if (fTimeoutTimer) {
|
||||
delete fTimeoutTimer;
|
||||
fTimeoutTimer = 0;
|
||||
}
|
||||
fTimeoutTimer = new TTimer();
|
||||
|
||||
fTimeoutTimer->Connect("Timeout()", "PMusrT0", this, "Quit()");
|
||||
|
||||
fTimeoutTimer->Start(1000*fTimeout, kTRUE);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// SetMsrHandler
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user