8#ifndef FMTobject_H_INCLUDED
9#define FMTobject_H_INCLUDED
15#include <boost/serialization/shared_ptr.hpp>
16#include <boost/serialization/nvp.hpp>
17#include <boost/serialization/export.hpp>
23#if defined _MSC_VER || __MINGW64__ || __CYGWIN__
26 #include <boost/dll/runtime_symbol_info.hpp>
31 class FMTexceptionhandler;
55 friend class boost::serialization::access;
56 template<
class Archive>
57 void serialize(Archive& ar,
const unsigned int version)
66 static std::shared_ptr<Exception::FMTexceptionhandler>
_exhandler;
69 static std::shared_ptr<Logging::FMTlogger>
_logger;
74 template<
class Archive>
75 void forcesave(Archive& ar,
const unsigned int version)
const
85 template<
class Archive>
86 void forceload(Archive& ar,
const unsigned int version)
91 setdefaultexceptionhandler();
108 static std::chrono::time_point<std::chrono::high_resolution_clock>
getclock();
113 template<
class chrono>
114 static double getduration(
const std::chrono::time_point<std::chrono::high_resolution_clock>& startclock);
119 static std::string
getdurationinseconds(
const std::chrono::time_point<std::chrono::high_resolution_clock>& startclock);
146 FMTobject(
const std::shared_ptr<Exception::FMTexceptionhandler> exhandler);
161 virtual void passinlogger(
const std::shared_ptr<Logging::FMTlogger>& logger);
239BOOST_CLASS_TRACKING(
Core::FMTobject, boost::serialization::track_always)
#define FMTEXPORT
Definition: FMTutility.hpp:92
Definition: FMTobject.hpp:50
void forcesave(Archive &ar, const unsigned int version) const
Definition: FMTobject.hpp:75
virtual void setquietlogger()
void seterrorstowarnings(const std::vector< Exception::FMTexc > &errors)
void enablenestedexceptions()
static std::string getruntimelocation()
void redirectlogtofile(const std::string &location)
static double getduration(const std::chrono::time_point< std::chrono::high_resolution_clock > &startclock)
static std::shared_ptr< Logging::FMTlogger > _logger
A shared pointer to the logger.
Definition: FMTobject.hpp:69
void setmaxwarningsbeforesilenced(const size_t &maxwarningcount)
void checksignals() const
void disablenestedexceptions()
FMTobject(const std::shared_ptr< Exception::FMTexceptionhandler > exhandler)
void setdebugexceptionhandler()
static unsigned long long getavailablememory()
void setquietexceptionhandler()
static std::chrono::time_point< std::chrono::high_resolution_clock > getclock()
void passinexceptionhandler(const std::shared_ptr< Exception::FMTexceptionhandler > &exhandler)
virtual void setdefaultlogger()
FMTobject(const FMTobject &rhs)
void setdefaultexceptionhandler()
void setfreeexceptionhandler()
static std::shared_ptr< Exception::FMTexceptionhandler > _exhandler
A shared pointer to the exception handler.
Definition: FMTobject.hpp:66
void forceload(Archive &ar, const unsigned int version)
Definition: FMTobject.hpp:86
static std::string getdurationinseconds(const std::chrono::time_point< std::chrono::high_resolution_clock > &startclock)
virtual void passinlogger(const std::shared_ptr< Logging::FMTlogger > &logger)
virtual void settasklogger()
virtual void setdebuglogger()
The Core namespace provides classes for simulating stands/strata growth/harvest through time.
Definition: FMTaction.hpp:31
Namespace for exceptions and exceptions handling (warnings and errors) thrown by FMT and all exceptio...
Definition: FMTcplhandler.hpp:16
Namespace for the log management, provides different log handlers.
Definition: FMTdebuglogger.hpp:14