BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
FitWorkerLauncher Class Reference
Inheritance diagram for FitWorkerLauncher:
[legend]
Collaboration diagram for FitWorkerLauncher:
[legend]

Public Slots

void interruptFitting ()
 

Signals

void fittingError (const QString &message)
 
void fittingFinished ()
 
void fittingStarted ()
 
void intern_interruptFittingWorker ()
 

Public Member Functions

 FitWorkerLauncher (QObject *parent)
 
int getDuration ()
 Returns duration of fit in msec. More...
 
void runFitting (std::shared_ptr< FitObjectiveBuilder > suite)
 

Private Slots

void intern_error (const QString &mesg)
 
void intern_workerFinished (int duration)
 
void intern_workerStarted ()
 

Private Attributes

int m_duration
 
std::atomic< bool > m_is_fit_running
 

Detailed Description

Definition at line 24 of file FitWorkerLauncher.h.

Constructor & Destructor Documentation

◆ FitWorkerLauncher()

FitWorkerLauncher::FitWorkerLauncher ( QObject *  parent)

Definition at line 19 of file FitWorkerLauncher.cpp.

20  : QObject(parent), m_is_fit_running(false), m_duration(0)
21 {
22 }
std::atomic< bool > m_is_fit_running

Member Function Documentation

◆ fittingError

void FitWorkerLauncher::fittingError ( const QString &  message)
signal

◆ fittingFinished

void FitWorkerLauncher::fittingFinished ( )
signal

◆ fittingStarted

void FitWorkerLauncher::fittingStarted ( )
signal

◆ getDuration()

int FitWorkerLauncher::getDuration ( )

Returns duration of fit in msec.

Definition at line 53 of file FitWorkerLauncher.cpp.

54 {
55  return m_duration;
56 }

References m_duration.

Referenced by FitSessionController::onFittingFinished().

◆ intern_error

void FitWorkerLauncher::intern_error ( const QString &  mesg)
privateslot

Definition at line 76 of file FitWorkerLauncher.cpp.

77 {
78  emit fittingError(mesg);
79 }
void fittingError(const QString &message)

References fittingError().

Referenced by runFitting().

◆ intern_interruptFittingWorker

void FitWorkerLauncher::intern_interruptFittingWorker ( )
signal

Referenced by interruptFitting(), and runFitting().

◆ intern_workerFinished

void FitWorkerLauncher::intern_workerFinished ( int  duration)
privateslot

Definition at line 64 of file FitWorkerLauncher.cpp.

65 {
66  m_is_fit_running = false;
67  m_duration = duration;
68  emit fittingFinished();
69 }

References fittingFinished(), m_duration, and m_is_fit_running.

Referenced by runFitting().

◆ intern_workerStarted

void FitWorkerLauncher::intern_workerStarted ( )
privateslot

Definition at line 71 of file FitWorkerLauncher.cpp.

72 {
73  emit fittingStarted();
74 }

References fittingStarted().

Referenced by runFitting().

◆ interruptFitting

void FitWorkerLauncher::interruptFitting ( )
slot

Definition at line 58 of file FitWorkerLauncher.cpp.

59 {
60  if (m_is_fit_running)
62 }
void intern_interruptFittingWorker()

References intern_interruptFittingWorker(), and m_is_fit_running.

Referenced by FitSessionController::onStopFittingRequest().

◆ runFitting()

void FitWorkerLauncher::runFitting ( std::shared_ptr< FitObjectiveBuilder suite)

Definition at line 24 of file FitWorkerLauncher.cpp.

25 {
26  if (!suite || m_is_fit_running)
27  return;
28 
29  auto thread = new QThread();
30  auto fw = new FitWorker(suite);
31  fw->moveToThread(thread);
32 
33  // start fitting when thread starts
34  connect(thread, &QThread::started, fw, &FitWorker::startFit);
36 
38  &FitWorker::interruptFitting, Qt::DirectConnection);
39 
42 
43  // delete fitting worker and thread when done
44  connect(fw, &FitWorker::finished, fw, &FitWorker::deleteLater);
45  connect(thread, &QThread::finished, thread, &QThread::deleteLater);
46 
47  m_is_fit_running = true;
48  thread->start();
49 }
void intern_error(const QString &mesg)
void intern_workerFinished(int duration)
void interruptFitting()
Definition: FitWorker.cpp:36
void finished(int duration)
void startFit()
Definition: FitWorker.cpp:19
void started()
void error(const QString &message)

References FitWorker::error(), FitWorker::finished(), intern_error(), intern_interruptFittingWorker(), intern_workerFinished(), intern_workerStarted(), FitWorker::interruptFitting(), m_is_fit_running, FitWorker::started(), and FitWorker::startFit().

Referenced by FitSessionController::onStartFittingRequest().

Here is the call graph for this function:

Member Data Documentation

◆ m_duration

int FitWorkerLauncher::m_duration
private

Definition at line 52 of file FitWorkerLauncher.h.

Referenced by getDuration(), and intern_workerFinished().

◆ m_is_fit_running

std::atomic<bool> FitWorkerLauncher::m_is_fit_running
private

Definition at line 51 of file FitWorkerLauncher.h.

Referenced by intern_workerFinished(), interruptFitting(), and runFitting().


The documentation for this class was generated from the following files: