23 #ifndef SRC_CONFIGURATION_APPLICATIONSTATE_HPP_
24 #define SRC_CONFIGURATION_APPLICATIONSTATE_HPP_
26 #include <boost/atomic.hpp>
27 #include <boost/thread/mutex.hpp>
31 #include <system_utils/windows_extras.hpp>
41 namespace application {
317 #define APP_STATE mic::application::ApplicationState::getInstance()
324 #define APP_SLEEP() usleep(APP_STATE->getSleepInterval())
331 #define APP_DATA_SYNCHRONIZATION_SCOPED_LOCK() boost::mutex::scoped_lock lock(APP_STATE->dataSynchronizationMutex())
double getSleepInterval()
Contains declaration of the PropertyTree class.
static ApplicationState * getInstance()
void divideSleepInterval(double d_=1.5)
Parent class for all classes possessing properties. Contains methods useful for their management...
Class storing the state of the application (modes, sleep interval etc.). Defined in the form of a sin...
void setSleepIntervalUS(double sleep_interval_in_microseconds)
Base class for all applications.
mic::configuration::Property< double > application_sleep_interval
void setSleepInterval(double sleep_interval_)
mic::configuration::Property< bool > pause_mode
Property: pause application mode.
double isSingleStepModeOn()
void setApplication(mic::application::Application *application_)
static boost::mutex instantiation_mutex
mic::configuration::Property< bool > learning_mode
Property: learning/testing mode.
void setSleepIntervalS(double sleep_interval_in_seconds)
void multiplySleepInterval(double m_=1.5)
double isLearningModeOn()
mic::application::Application * application
bool using_ncurses
Flag denoting whether application is using NCurses-based CLI.
static boost::atomic< ApplicationState * > instance_
void setLearningModeOff()
static boost::mutex external_data_synchronization_mutex
mic::configuration::Property< bool > single_step_mode
Property: single step mode.
bool quit_flag
Quit application flag.
void setSleepIntervalMS(double sleep_interval_in_miliseconds)
boost::mutex & dataSynchronizationMutex()
bool using_opengl
Flag denoting whether application is using OpenGL-based visualization.
static boost::mutex internal_data_synchronization_mutex
virtual void initializePropertyDependentVariables()