Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Slic3r::Timing::TimeLimitAlarm Class Reference

#include <src/libslic3r/Timer.hpp>

+ Collaboration diagram for Slic3r::Timing::TimeLimitAlarm:

Public Member Functions

 TimeLimitAlarm (uint64_t time_limit_nanoseconds, std::string_view limit_exceeded_message)
 
 ~TimeLimitAlarm ()
 

Static Public Member Functions

static TimeLimitAlarm new_nanos (uint64_t time_limit_nanoseconds, std::string_view limit_exceeded_message)
 
static TimeLimitAlarm new_milis (uint64_t time_limit_milis, std::string_view limit_exceeded_message)
 
static TimeLimitAlarm new_seconds (uint64_t time_limit_seconds, std::string_view limit_exceeded_message)
 

Private Member Functions

void report_time_exceeded () const
 

Private Attributes

Timer m_timer
 
uint64_t m_time_limit_nanoseconds
 
std::string_view m_limit_exceeded_message
 

Detailed Description

Constructor & Destructor Documentation

◆ TimeLimitAlarm()

Slic3r::Timing::TimeLimitAlarm::TimeLimitAlarm ( uint64_t  time_limit_nanoseconds,
std::string_view  limit_exceeded_message 
)
inline
62 :
63 m_time_limit_nanoseconds(time_limit_nanoseconds), m_limit_exceeded_message(limit_exceeded_message) {
64 m_timer.start();
65 }
uint64_t m_time_limit_nanoseconds
Definition Timer.hpp:84
std::string_view m_limit_exceeded_message
Definition Timer.hpp:85
Timer m_timer
Definition Timer.hpp:83
void start()
Definition Timer.hpp:40

References m_timer, and Slic3r::Timing::Timer::start().

+ Here is the call graph for this function:

◆ ~TimeLimitAlarm()

Slic3r::Timing::TimeLimitAlarm::~TimeLimitAlarm ( )
inline
66 {
67 auto elapsed = m_timer.elapsed_nanoseconds();
68 if (elapsed > m_time_limit_nanoseconds)
70 }
void report_time_exceeded() const
Definition Timer.cpp:17
uint64_t elapsed_nanoseconds() const
Definition Timer.hpp:43

References Slic3r::Timing::Timer::elapsed_nanoseconds(), m_time_limit_nanoseconds, m_timer, and report_time_exceeded().

+ Here is the call graph for this function:

Member Function Documentation

◆ new_milis()

static TimeLimitAlarm Slic3r::Timing::TimeLimitAlarm::new_milis ( uint64_t  time_limit_milis,
std::string_view  limit_exceeded_message 
)
inlinestatic
74 {
75 return TimeLimitAlarm(uint64_t(time_limit_milis) * 1000000l, limit_exceeded_message);
76 }
TimeLimitAlarm(uint64_t time_limit_nanoseconds, std::string_view limit_exceeded_message)
Definition Timer.hpp:62
unsigned __int64 uint64_t
Definition unistd.h:80

◆ new_nanos()

static TimeLimitAlarm Slic3r::Timing::TimeLimitAlarm::new_nanos ( uint64_t  time_limit_nanoseconds,
std::string_view  limit_exceeded_message 
)
inlinestatic
71 {
72 return TimeLimitAlarm(time_limit_nanoseconds, limit_exceeded_message);
73 }

◆ new_seconds()

static TimeLimitAlarm Slic3r::Timing::TimeLimitAlarm::new_seconds ( uint64_t  time_limit_seconds,
std::string_view  limit_exceeded_message 
)
inlinestatic
77 {
78 return TimeLimitAlarm(uint64_t(time_limit_seconds) * 1000000000l, limit_exceeded_message);
79 }

◆ report_time_exceeded()

void Slic3r::Timing::TimeLimitAlarm::report_time_exceeded ( ) const
private
17 {
18 BOOST_LOG_TRIVIAL(error) << "Time limit exceeded for " << m_limit_exceeded_message << ": " << m_timer.elapsed_seconds() << "s";
19}
double elapsed_seconds() const
Definition Timer.hpp:52
static char error[256]
Definition tga.cpp:50

References Slic3r::Timing::Timer::elapsed_seconds(), error, m_limit_exceeded_message, and m_timer.

Referenced by ~TimeLimitAlarm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_limit_exceeded_message

std::string_view Slic3r::Timing::TimeLimitAlarm::m_limit_exceeded_message
private

Referenced by report_time_exceeded().

◆ m_time_limit_nanoseconds

uint64_t Slic3r::Timing::TimeLimitAlarm::m_time_limit_nanoseconds
private

Referenced by ~TimeLimitAlarm().

◆ m_timer

Timer Slic3r::Timing::TimeLimitAlarm::m_timer
private

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