OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::BoostThreadWorker::WorkerMessage Class Reference

Public Types

enum  MsgType { Empty , Status , Finalize , MainThreadCall }

Public Member Functions

 WorkerMessage ()=default
 WorkerMessage (int s, std::string txt)
 WorkerMessage (JobEntry &&entry)
 WorkerMessage (MainThreadCallData fn)
int get_type () const
void deliver (BoostThreadWorker &runner)

Private Attributes

boost::variant< EmptyMessage, StatusInfo, JobEntry, MainThreadCallData > m_data

Detailed Description

Member Enumeration Documentation

◆ MsgType

Enumerator
Empty 
Status 
Finalize 
MainThreadCall 
@ MainThreadCall
Definition BoostThreadWorker.hpp:59
@ Finalize
Definition BoostThreadWorker.hpp:59
@ Empty
Definition BoostThreadWorker.hpp:59
@ Status
Definition BoostThreadWorker.hpp:59

Constructor & Destructor Documentation

◆ WorkerMessage() [1/4]

Slic3r::GUI::BoostThreadWorker::WorkerMessage::WorkerMessage ( )
default

◆ WorkerMessage() [2/4]

Slic3r::GUI::BoostThreadWorker::WorkerMessage::WorkerMessage ( int s,
std::string txt )
inline
67 : m_data{StatusInfo{s, std::move(txt)}}
68 {}
boost::variant< EmptyMessage, StatusInfo, JobEntry, MainThreadCallData > m_data
Definition BoostThreadWorker.hpp:62

References m_data.

◆ WorkerMessage() [3/4]

Slic3r::GUI::BoostThreadWorker::WorkerMessage::WorkerMessage ( JobEntry && entry)
inline
69: m_data{std::move(entry)} {}

References m_data.

◆ WorkerMessage() [4/4]

Slic3r::GUI::BoostThreadWorker::WorkerMessage::WorkerMessage ( MainThreadCallData fn)
inline
70: m_data{std::move(fn)} {}

References m_data.

Member Function Documentation

◆ deliver()

void Slic3r::GUI::BoostThreadWorker::WorkerMessage::deliver ( BoostThreadWorker & runner)
19{
20 switch(MsgType(get_type())) {
21 case Empty: break;
22 case Status: {
23 auto info = boost::get<StatusInfo>(m_data);
24 if (runner.get_pri()) {
25 runner.get_pri()->set_progress(info.status);
26 runner.get_pri()->set_status_text(info.msg.c_str());
27 }
28 break;
29 }
30 case Finalize: {
31 auto& entry = boost::get<JobEntry>(m_data);
32 entry.job->finalize(entry.canceled, entry.eptr);
33
34 // Unhandled exceptions are rethrown without mercy.
35 if (entry.eptr)
36 std::rethrow_exception(entry.eptr);
37
38 break;
39 }
40 case MainThreadCall: {
41 auto &calldata = boost::get<MainThreadCallData >(m_data);
42 calldata.fn();
43 calldata.promise.set_value();
44
45 break;
46 }
47 }
48}
int get_type() const
Definition BoostThreadWorker.hpp:72
MsgType
Definition BoostThreadWorker.hpp:59

References Slic3r::GUI::BoostThreadWorker::BoostThreadWorker(), Empty, Finalize, Slic3r::GUI::BoostThreadWorker::get_pri(), get_type(), m_data, MainThreadCall, Slic3r::ProgressIndicator::set_progress(), Slic3r::ProgressIndicator::set_status_text(), and Status.

Here is the call graph for this function:

◆ get_type()

int Slic3r::GUI::BoostThreadWorker::WorkerMessage::get_type ( ) const
inline
72{ return m_data.which(); }

References m_data.

Referenced by deliver().

Here is the caller graph for this function:

Member Data Documentation

◆ m_data

boost::variant<EmptyMessage, StatusInfo, JobEntry, MainThreadCallData> Slic3r::GUI::BoostThreadWorker::WorkerMessage::m_data
private

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