26 #if defined _SYSTEM_QNX_ 28 #elif defined _SYSTEM_POSIX_ 29 # if defined _SYSTEM_LXRT_ 32 # if defined _SYSTEM_LINUX_ 33 # include <linux/version.h> 34 # if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)) 39 #elif defined _SYSTEM_WIN32_ 42 # error "No implementation specified for System dependent components" 53 :
Thread(description, priority)
55 #if defined (_SYSTEM_QNX_) 57 "Creating QNX periodic thread implementation." <<
endl);
60 #elif defined (_SYSTEM_POSIX_) 61 # if defined (_SYSTEM_LXRT_) 71 "Creating LXRT periodic thread implementation." <<
endl);
72 m_impl =
new PeriodicThreadImplLxrt(period);
77 # if defined (_SYSTEM_LINUX_) 78 # if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)) 81 "Creating timerfd periodic thread implementation." <<
endl);
86 "Creating emulate periodic thread implementation." <<
endl);
92 "Creating emulate periodic thread implementation." <<
endl);
95 # if defined(_SYSTEM_LXRT_) 99 #elif defined (_SYSTEM_WIN32_) 101 "Creating emulate periodic thread implementation." <<
endl);
122 #ifdef _IC_BUILDER_DEPRECATED_STYLE_ 153 "Resetted to hard realtime mode." <<
endl);
158 "Resetting to hard realtime mode failed!" <<
endl);
166 "Resetted to soft realtime mode." <<
endl);
171 "Resetting to soft realtime mode failed!" <<
endl);
191 #ifdef _IC_BUILDER_DEPRECATED_STYLE_ 196 void PeriodicThread::WaitPeriod()
Contains icl_core::thread::PeriodicThread.
virtual icl_core::TimeSpan period() const =0
bool isHardRealtime() const
Contains icl_core::thread::PeriodicThreadImpl.
bool executesHardRealtime() const
#define LOGGING_ERROR_CO(stream, classname, objectname, arg)
virtual void makePeriodic()
virtual void waitPeriod()=0
Contains icl_core::thread::PeriodicThreadImplQNX.
Contains icl_core::thread::PeriodicThread.
virtual ~PeriodicThread()
Contains logging definitions for the icl_core_thread library.
bool setPeriod(const icl_core::TimeSpan &period)
ThreadStream & endl(ThreadStream &stream)
#define LOGGING_TRACE_CO(stream, classname, objectname, arg)
#define LOGGING_DEBUG_CO(stream, classname, objectname, arg)
bool setHardRealtime(bool hard_realtime=true)
PeriodicThreadImpl * m_impl
Repesents absolute times.
#define LOGGING_INFO_CO(stream, classname, objectname, arg)
virtual void makePeriodic()=0
Contains icl_core::thread::PeriodicThreadImplTimerfd.
const char * threadInfo() const
PeriodicThread(const icl_core::String &description, const icl_core::TimeSpan &period, ThreadPriority priority=0)
icl_core::TimeSpan period() const
Defines icl_core::thread::PeriodicThreadImplLxrt.
virtual bool setPeriod(const icl_core::TimeSpan &period)=0