Kernel interface for thread, timer and signal handling. More...
#include <kernel_intf.h>
Public Member Functions | |
ADTF_IID (IKernel, "kernel.penguin.services.adtf.iid") | |
Interface ID for the kernel interface. | |
virtual tResult | TimerCreate (adtf::ucom::iobject_ptr< ITimer > &pTimer, const char *strTimerName, tTimeStamp nPeriod, tTimeStamp nInitialDelay, tTimeStamp nMaximumExecutionTime, const adtf::ucom::iobject_ptr< IKernelRunnable > &pKernelRunnable, const void *pUserData=nullptr, size_t nUserDataSize=0, tTimerClock eClock=tTimerClock::ADTF, const tSchedulingInfo &sScheduling=tSchedulingInfo(), uint32_t ui32Flags=tTimerFlags::TIF_None)=0 |
Creates a new timer, that periodically calls the Run method of the given runnable. | |
![]() | |
ADTF_IID (IKernel, "kernel.devil.services.adtf.iid") | |
Interface ID for the kernel interface. | |
![]() | |
ADTF_IID (IKernel, "kernel.ant.services.adtf.iid") | |
Interface ID for the kernel interface. | |
virtual tResult | ThreadCreate (adtf::ucom::iobject_ptr< IThread > &pThread, const char *strThreadName, const adtf::ucom::iobject_ptr< IKernelRunnable > &pKernelRunnable, const void *pUserData=nullptr, size_t nUserDataSize=0, const tSchedulingInfo &sScheduling=tSchedulingInfo(), uint32_t ui32Flags=tThreadFlags::THF_None)=0 |
Creates a new thread of execution that executes the Run method of the given runnable. | |
virtual tResult | TimerCreate (adtf::ucom::iobject_ptr< ITimer > &pTimer, const char *strTimerName, tTimeStamp nPeriod, tTimeStamp nInitialDelay, const adtf::ucom::iobject_ptr< IKernelRunnable > &pKernelRunnable, const void *pUserData=nullptr, size_t nUserDataSize=0, tTimerClock eClock=tTimerClock::ADTF, const tSchedulingInfo &sScheduling=tSchedulingInfo(), uint32_t ui32Flags=tTimerFlags::TIF_None)=0 |
Creates a new timer, that periodically calls the Run method of the given runnable. | |
virtual tResult | SignalSend (const adtf::ucom::iobject_ptr< ISignal > &pSignal, uint32_t ui32Flags=tSignalFlags::SIG_None)=0 |
Transmits a signal to all registered signal handlers. | |
virtual tResult | SignalRegister (ISignalHandler &oHandler, uint32_t ui32Flags=tSignalFlags::SIG_None)=0 |
Registers a new signal handler. | |
virtual tResult | SignalUnregister (ISignalHandler &oHandler)=0 |
Unregisters a signal handler. | |
virtual tResult | GetObjects (adtf::ucom::iobject_enum< IObject > &oObjects)=0 |
Returns a list of all kernel primitives. | |
![]() | |
ADTF_IID (IObject, "object.ant.ucom.adtf.iid") | |
Marks the IObject to be castable with the ucom_cast() | |
Additional Inherited Members | |
![]() | |
enum class | tSchedulingClass : uint32_t { Default = 0 , Normal = 1 , RealTime = 2 } |
Enum for different scheduling schemes. More... | |
enum | tThreadFlags { THF_None = 0 , THF_Detached = 1 } |
Flags for thread creation. More... | |
enum class | tTimerClock : uint32_t { ADTF = 0 , Monotonic = 1 , RealTime = 2 } |
Enum for different time sources for timers. More... | |
enum | tTimerFlags : uint8_t { TIF_None = 0 , TIF_Reschedule = 1 , TIF_Drop = 2 , TIF_ErrorLog = 4 , TIF_ErrorStop = 8 } |
Flags for time creation. More... | |
enum | tSignalFlags { SIG_None = 0 , SIG_Async = 1 } |
Enum for signal options. More... | |
![]() | |
~IKernel ()=default | |
Protected destructor --> Only the final implementation can be destroyed! | |
![]() | |
~IObject ()=default | |
Protected destructor --> Only the final implementation can be destroyed! | |
Kernel interface for thread, timer and signal handling.
Definition at line 387 of file kernel_intf.h.
|
pure virtual |
Creates a new timer, that periodically calls the Run method of the given runnable.
Please take a look at the kernel_timer template class, which transparently wraps this interface.
[out] | pTimer | This will be updated with a pointer to the interface of the created thread. |
[in] | strTimerName | The name of the timer. Has to be unique among all registered kernel primitives. |
[in] | nPeriod | The period of the timer in microseconds. 0 = one-shot timer. |
[in] | nInitialDelay | The intial delay before the timer expires the first time. |
[in] | nMaximumExecutionTime | The maximum allowed execution time. |
[in] | pKernelRunnable | The runnable that will be called. |
[in] | pUserData | This is passed on to the runnable. Mind that the data is not stored or copied in any way, so make sure the pointer stays valid long enough. |
[in] | nUserDataSize | The size of the user data passed to the runnable. |
[in] | eClock | The time source used by the timer. |
[in] | sScheduling | The scheduling settings. |
[in] | ui32Flags | Thread flags, see tTimerFlags. |
ERR_FAILED | The scheduling settings are not valid. |
ERR_RESOURCE_IN_USE | The given name is already used by another kernel primitive. |