#include <MainThread.hpp>
Public Member Functions | |
virtual int | getMaxOverrun () const |
virtual const char * | getName () const |
virtual Seconds | getPeriod () const |
virtual nsecs | getPeriodNS () const |
virtual unsigned int | getPid () const |
virtual int | getPriority () const |
virtual int | getScheduler () const |
virtual RTOS_TASK * | getTask () |
virtual const RTOS_TASK * | getTask () const |
virtual bool | isActive () const |
virtual bool | isRunning () const |
virtual void | setMaxOverrun (int m) |
virtual bool | setPeriod (Seconds period) |
virtual bool | setPriority (int priority) |
virtual bool | setScheduler (int sched_type) |
virtual void | setWaitPeriodPolicy (int p) |
virtual bool | start () |
virtual bool | stop () |
unsigned int | threadNumber () const |
virtual void | yield () |
virtual | ~MainThread () |
Static Public Member Functions | |
static ThreadInterface * | Instance () |
static void | Release () |
Private Member Functions | |
MainThread () | |
Private Attributes | |
RTOS_TASK | main_task |
Static Private Attributes | |
static boost::shared_ptr < ThreadInterface > | mt |
A class which represents the main() thread.
Definition at line 52 of file MainThread.hpp.
RTT::os::MainThread::MainThread | ( | ) | [private] |
Definition at line 50 of file MainThread.cpp.
RTT::os::MainThread::~MainThread | ( | ) | [virtual] |
Definition at line 54 of file MainThread.cpp.
int RTT::os::MainThread::getMaxOverrun | ( | ) | const [virtual] |
Implements RTT::os::ThreadInterface.
Definition at line 123 of file MainThread.cpp.
const char * RTT::os::MainThread::getName | ( | ) | const [virtual] |
Seconds RTT::os::MainThread::getPeriod | ( | ) | const [virtual] |
nsecs RTT::os::MainThread::getPeriodNS | ( | ) | const [virtual] |
unsigned int RTT::os::MainThread::getPid | ( | ) | const [virtual] |
Returns the Process or Thread ID of this thread, as assigned by the Operating System. This function tries to return the Thread ID, if the OS supports it, otherwise it returns the process ID. If that is not available either, zero is returned. On Linux systems for example, the Thread ID of the main thread is equal to the Process ID. The Thread ID of every newly created thread is different from the Process ID (and unique).
Implements RTT::os::ThreadInterface.
Definition at line 109 of file MainThread.cpp.
int RTT::os::MainThread::getPriority | ( | ) | const [virtual] |
The priority of this Thread.
Implements RTT::os::ThreadInterface.
Definition at line 104 of file MainThread.cpp.
int RTT::os::MainThread::getScheduler | ( | ) | const [virtual] |
Get the scheduler policy in which this thread runs.
Implements RTT::os::ThreadInterface.
Definition at line 94 of file MainThread.cpp.
RTOS_TASK * RTT::os::MainThread::getTask | ( | ) | [virtual] |
Get the RTOS_TASK pointer.
Implements RTT::os::ThreadInterface.
Definition at line 84 of file MainThread.cpp.
const RTOS_TASK * RTT::os::MainThread::getTask | ( | ) | const [virtual] |
const version of the above.
Implements RTT::os::ThreadInterface.
Definition at line 86 of file MainThread.cpp.
ThreadInterface * RTT::os::MainThread::Instance | ( | ) | [static] |
Return an object which represents the main thread. Only after this call, OS calls may be done.
Definition at line 58 of file MainThread.cpp.
bool RTT::os::MainThread::isActive | ( | ) | const [virtual] |
Returns always true.
Implements RTT::os::ThreadInterface.
Definition at line 80 of file MainThread.cpp.
bool RTT::os::MainThread::isRunning | ( | ) | const [virtual] |
Returns always true.
Implements RTT::os::ThreadInterface.
Definition at line 79 of file MainThread.cpp.
void RTT::os::MainThread::Release | ( | ) | [static] |
This is called to cleanup the main thread. After this call, no OS calls may be done.
Definition at line 66 of file MainThread.cpp.
void RTT::os::MainThread::setMaxOverrun | ( | int | m | ) | [virtual] |
Implements RTT::os::ThreadInterface.
Definition at line 119 of file MainThread.cpp.
bool RTT::os::MainThread::setPeriod | ( | Seconds | period | ) | [virtual] |
Returns always false.
Implements RTT::os::ThreadInterface.
Definition at line 114 of file MainThread.cpp.
bool RTT::os::MainThread::setPriority | ( | int | priority | ) | [virtual] |
Set the priority of this Thread.
priority | The priority given upon construction of this thread. It has to be interpreted in the current OS scheduler. |
Implements RTT::os::ThreadInterface.
Definition at line 99 of file MainThread.cpp.
bool RTT::os::MainThread::setScheduler | ( | int | sched_type | ) | [virtual] |
Change the scheduler policy in which this thread runs.
sched_type | An OS-specific value which selects a scheduler. Orocos requires that these two values are available:
|
Your OS can in addition provide other sched_type's which map more naturally to the schedulers present. If your OS does not make a distinction between real-time and other, both values may map to the same scheduler type.
Implements RTT::os::ThreadInterface.
Definition at line 88 of file MainThread.cpp.
void RTT::os::MainThread::setWaitPeriodPolicy | ( | int | p | ) | [virtual] |
Set the wait policy of a periodic thread
The | wait policy between ORO_WAIT_ABS (absolute wait) and ORO_WAIT_REL (relative wait) |
Implements RTT::os::ThreadInterface.
Definition at line 128 of file MainThread.cpp.
bool RTT::os::MainThread::start | ( | void | ) | [virtual] |
bool RTT::os::MainThread::stop | ( | void | ) | [virtual] |
unsigned int RTT::os::MainThread::threadNumber | ( | ) | const |
Returns zero, the number of the main() thread.
Reimplemented from RTT::os::ThreadInterface.
Definition at line 138 of file MainThread.cpp.
void RTT::os::MainThread::yield | ( | ) | [virtual] |
Yields (put to the back of the scheduler queue) the calling thread.
Implements RTT::os::ThreadInterface.
Definition at line 133 of file MainThread.cpp.
RTOS_TASK RTT::os::MainThread::main_task [private] |
Definition at line 61 of file MainThread.hpp.
boost::shared_ptr< ThreadInterface > RTT::os::MainThread::mt [static, private] |
We use a shared_ptr such that under exception conditions, the program is still cleaned up.
Definition at line 60 of file MainThread.hpp.