![]() |
FMT 1.2.0
Forest management tools for forest planning
|
Task for parallel jobs. More...
#include <FMTTask.h>
Public Member Functions | |
| FMTTask () | |
| Default constructor for FMTTask. | |
| virtual | ~FMTTask ()=default |
| Default virtual destructor for FMTTask. | |
| FMTTask (const FMTTask &rhs) | |
| Default copy constructor for FMTTask. | |
| FMTTask & | operator= (const FMTTask &rhs) |
| Default copy assignment operator for FMTTask. | |
| virtual std::unique_ptr< FMTTask > | clone () const |
| Clone function for FMTTask. | |
| virtual std::vector< std::unique_ptr< FMTTask > > | split (const unsigned int &numberoftasks) const |
| Split the actual task into multiple tasks. | |
| virtual std::unique_ptr< FMTTask > | spawn () |
| Spawn a minimal task from the master task. | |
| virtual void | work () |
| Main job executed by the thread. | |
| virtual void | run () |
| Set up the crash handler and call work. | |
| virtual void | finalize () |
| Called right after the last task is done, when overridden. | |
| virtual bool | SupportsMultiThreading () const |
| Check if the task support multithreading. | |
Public Member Functions inherited from Core::FMTObject | |
| FMTObject () | |
| Default constructor for FMTObject. | |
| virtual | ~FMTObject () |
| Default virtual destructor for FMTObject. | |
| FMTObject (const std::unique_ptr< Exception::FMTExceptionHandler > exhandler) | |
| Construct a FMTObject passing in the exception handler of another FMTObject. | |
| FMTObject (const FMTObject &rhs) | |
| Copy constructor for FMTObject. | |
| FMTObject & | operator= (const FMTObject &rhs) |
| Copy assignment operator for FMTObject. | |
| virtual void | passInLogger (const std::unique_ptr< Logging::FMTLogger > &logger) |
| Pass in the logger of another FMTObject. | |
| void | passInExceptionHandler (const std::unique_ptr< Exception::FMTExceptionHandler > &exhandler) |
| Pass in the exception handler of another FMTObject. | |
| void | redirectLogToFile (const std::string &location) |
| Redirect the log to a specific file, appending to it. | |
| virtual void | setDefaultLogger () |
| Create and set a default logger to the FMTObject. | |
| virtual void | setQuietLogger () |
| Create and set a quiet logger to the FMTObject. | |
| virtual void | setTaskLogger () |
| Create and set a task logger to the FMTObject. | |
| virtual void | setDebugLogger () |
| Create and set a debug logger to the FMTObject. | |
| void | setDefaultExceptionHandler () |
| Create and set a default exception handler to the FMTObject. | |
| void | setQuietExceptionHandler () |
| Create and set a quiet exception handler to the FMTObject. | |
| void | setDebugExceptionHandler () |
| Create and set a debug exception handler to the FMTObject. | |
| void | setFreeExceptionHandler () |
| Create and set a free exception handler to the FMTObject. | |
| void | disableNestedExceptions () |
| Disable the nested exception throw of the exception handler. | |
| void | enableNestedExceptions () |
| Enable the nested exception throw of the exception handler. | |
| void | setErrorsToWarnings (const std::vector< Exception::FMTexc > &errors) |
| Set a list of errors to be cast to warnings on the exception handler. | |
| void | setMaxWarningsBeforeSilenced (const size_t &maxwarningcount) |
| Set the number of warnings raised before being silenced. | |
| template<class Archive > | |
| void | serialize (Archive &ar, const unsigned int version) |
Static Public Member Functions | |
| static std::string | getThreadId () |
| Return true if the job is all done. | |
| static void | setTotalThreads (const size_t &p_threads) |
| Set the total amount of threads. | |
Static Public Member Functions inherited from Core::FMTObject | |
| static Logging::FMTLogger * | getLogger () |
| get a pointer to the actual logger. | |
| static Exception::FMTExceptionHandler * | getExceptionHandler () |
| get a pointer to the actual exception handler. | |
| static std::string | getRuntimeLocation () |
| Return the location of the FMT shared library. | |
| static unsigned long long | getAvailableMemory () |
| Return the available memory in bytes. | |
| static void | setTerminateStack () |
| will write the stack in the log when terminate called and raise a function failed. | |
| static void | setAbortStack () |
| will write the stack in the log when abort called with SIGABRT and raise a function failed. | |
Public Attributes | |
| bool | done |
| If the task is done true else false. | |
Protected Member Functions | |
| std::vector< size_t > | _splitWork (int numberoftasks, const int &totalworksize) const |
| Change the status of the task. | |
| void | _decrementWorkingThread () |
| Decrement the number of working threads. | |
| void | _checkpoint () |
| Wait for the other threads to finish their jobs, then continue. | |
| void | _setCrashHandlers () |
| Set the terminate and abort handlers before running the global function in the thread, and set the se_translator on Windows. | |
Protected Member Functions inherited from Core::FMTObject | |
| template<class Archive > | |
| void | forceSave (Archive &ar, const unsigned int version) const |
| Force the serialization to save useful information, which the default FMTObject serialization does not. | |
| template<class Archive > | |
| void | forceLoad (Archive &ar, const unsigned int version) |
| Force the serialization to load useful information, which the default FMTObject serialization does not. | |
| void | checkSignals () const |
| Check if the user has sent a ctrl-c signal using boost::python to FMT. | |
| void | setCplHandler () |
| Pass the FMT exception handler to the GDAL exception handler (GDAL only). | |
Protected Attributes | |
| std::unique_ptr< Logging::FMTLogger > | m_tasklogger |
Static Protected Attributes | |
| static boost::recursive_mutex | m_taskmutex |
| Recursive mutex for the task. | |
Static Protected Attributes inherited from Core::FMTObject | |
| static std::unique_ptr< Exception::FMTExceptionHandler > | _exhandler |
| A shared pointer to the exception handler. | |
| static std::unique_ptr< Logging::FMTLogger > | _logger |
| A shared pointer to the logger. | |
Additional Inherited Members | |
Static Protected Member Functions inherited from Core::FMTObject | |
| static std::chrono::time_point< std::chrono::high_resolution_clock > | getClock () |
| Return a clock of the current time. | |
| template<class chrono > | |
| static double | getDuration (const std::chrono::time_point< std::chrono::high_resolution_clock > &startclock) |
| Return the time elapsed since a start clock as a double. | |
| static std::string | getDurationInSeconds (const std::chrono::time_point< std::chrono::high_resolution_clock > &startclock) |
| Return the time elapsed since a start clock in seconds as a string. | |
| static void | _logStack () |
| Log the stack trace... | |
| static void | _terminate () |
| Raise an error with the boost stacktrace. | |
| static void | _abort (int p_signal) |
| Raise an error with the boost stacktrace on abort. | |
Task for parallel jobs.
Implement the clone, work and split functions of your task to use it in the FMTTaskHandler.
| Parallel::FMTTask::FMTTask | ( | ) |
Default constructor for FMTTask.
|
virtualdefault |
Default virtual destructor for FMTTask.
| Parallel::FMTTask::FMTTask | ( | const FMTTask & | rhs | ) |
|
protected |
Wait for the other threads to finish their jobs, then continue.
|
protected |
Decrement the number of working threads.
|
protected |
Set the terminate and abort handlers before running the global function in the thread, and set the se_translator on Windows.
|
protected |
Change the status of the task.
Split the total work size into buckets that are as equal as possible.
| [in] | numberoftasks | the number of tasks. |
| [in] | totalworksize | the total work size. |
|
virtual |
Clone function for FMTTask.
Reimplemented in Parallel::FMTOpAreaSchedulerTask, Parallel::FMTPlanningTask, and Parallel::FMTReplanningTask.
|
virtual |
Called right after the last task is done, when overridden.
Reimplemented in Parallel::FMTOpAreaSchedulerTask, Parallel::FMTPlanningTask, and Parallel::FMTReplanningTask.
|
static |
Return true if the job is all done.
Get the thread id of the task.
|
virtual |
Set up the crash handler and call work.
|
static |
Set the total amount of threads.
| [in] | p_threads | the number of threads. |
|
virtual |
Spawn a minimal task from the master task.
Reimplemented in Parallel::FMTOpAreaSchedulerTask, Parallel::FMTPlanningTask, and Parallel::FMTReplanningTask.
|
virtual |
Split the actual task into multiple tasks.
| [in] | numberoftasks | the number of tasks. |
Reimplemented in Parallel::FMTOpAreaSchedulerTask, Parallel::FMTPlanningTask, and Parallel::FMTReplanningTask.
|
virtual |
Check if the task support multithreading.
Reimplemented in Parallel::FMTOpAreaSchedulerTask, Parallel::FMTPlanningTask, and Parallel::FMTReplanningTask.
|
virtual |
Main job executed by the thread.
Reimplemented in Parallel::FMTOpAreaSchedulerTask, Parallel::FMTPlanningTask, and Parallel::FMTReplanningTask.
| bool Parallel::FMTTask::done |
If the task is done true else false.
|
protected |
Logger for solver in parallel...coinmessagehandler does not support concurency. This logger wont print anything so dont use it in parallel.
|
staticprotected |
Recursive mutex for the task.