#include <Dispatcher.hpp>
Public Types | |
typedef boost::intrusive_ptr< Dispatcher > | shared_ptr |
![]() | |
typedef boost::shared_ptr< ActivityInterface > | shared_ptr |
Public Member Functions | |
void | addQueue (mqd_t mqdes, base::ChannelElementBase *chan) |
bool | breakLoop () |
bool | initialize () |
void | loop () |
void | removeQueue (mqd_t mqdes) |
![]() | |
Activity (base::RunnableInterface *r=0, const std::string &name="Activity") | |
Create a not real-time Activity. This creates a not real-time, non-periodic thread, with priority equal to RTT::os::LowestPriority. More... | |
Activity (int priority, base::RunnableInterface *r=0, const std::string &name="Activity") | |
Create a real-time Activity with a given priority. The thread is run in the ORO_SCHED_RT scheduler. More... | |
Activity (int priority, Seconds period, base::RunnableInterface *r=0, const std::string &name="Activity") | |
Create a real-time Activity with a given priority and period. The thread is run in the ORO_SCHED_RT scheduler. More... | |
Activity (int scheduler, int priority, base::RunnableInterface *r=0, const std::string &name="Activity") | |
Create an Activity with a given scheduler type and priority. More... | |
Activity (int scheduler, int priority, Seconds period, base::RunnableInterface *r=0, const std::string &name="Activity") | |
Create an Activity with a given scheduler type, priority and period. More... | |
Activity (int scheduler, int priority, Seconds period, unsigned cpu_affinity, base::RunnableInterface *r=0, const std::string &name="Activity") | |
Create an Activity with a given scheduler type, priority, period and cpu affinity. More... | |
virtual bool | execute () |
virtual void | finalize () |
virtual unsigned | getCpuAffinity () const |
virtual Seconds | getPeriod () const |
virtual bool | isActive () const |
virtual bool | isPeriodic () const |
virtual bool | isRunning () const |
virtual bool | setCpuAffinity (unsigned cpu) |
virtual bool | setPeriod (Seconds period) |
void | setWaitPeriodPolicy (int p) |
virtual bool | start () |
virtual void | step () |
virtual bool | stop () |
virtual os::ThreadInterface * | thread () |
virtual bool | timeout () |
virtual bool | trigger () |
virtual void | work (base::RunnableInterface::WorkReason reason) |
virtual | ~Activity () |
![]() | |
ActivityInterface () | |
ActivityInterface (RunnableInterface *run) | |
virtual RunnableInterface * | getRunner () const |
virtual bool | run (RunnableInterface *r) |
virtual | ~ActivityInterface () |
![]() | |
virtual int | getMaxOverrun () const |
virtual const char * | getName () const |
void | getPeriod (secs &s, nsecs &ns) const |
virtual nsecs | getPeriodNS () const |
virtual unsigned int | getPid () const |
virtual int | getPriority () const |
virtual int | getScheduler () const |
Seconds | getStopTimeout () const |
virtual RTOS_TASK * | getTask () |
virtual const RTOS_TASK * | getTask () const |
virtual void | setMaxOverrun (int m) |
bool | setPeriod (Seconds s) |
bool | setPeriod (secs s, nsecs ns) |
bool | setPeriod (TIME_SPEC p) |
virtual bool | setPriority (int priority) |
virtual bool | setScheduler (int sched_type) |
void | setStopTimeout (Seconds s) |
Thread (int scheduler, int priority, double period, unsigned cpu_affinity, const std::string &name) | |
virtual void | yield () |
virtual | ~Thread () |
![]() | |
bool | isSelf () const |
ThreadInterface () | |
unsigned int | threadNumber () const |
virtual | ~ThreadInterface () |
Static Public Member Functions | |
static Dispatcher::shared_ptr | Instance () |
![]() | |
static void | setLockTimeoutNoPeriod (double timeout_in_s) |
static void | setLockTimeoutPeriodFactor (double factor) |
static void | setStackSize (unsigned int ssize) |
Private Types | |
typedef std::map< mqd_t, base::ChannelElementBase * > | MQMap |
Private Member Functions | |
void | build_select_list () |
Dispatcher (const std::string &name) | |
void | read_socks () |
~Dispatcher () | |
Private Attributes | |
bool | do_exit |
int | highsock |
os::Mutex | maplock |
MQMap | mqmap |
os::AtomicInt | refcount |
fd_set | socks |
Static Private Attributes | |
static Dispatcher * | DispatchI = 0 |
Friends | |
void | intrusive_ptr_add_ref (const RTT::mqueue::Dispatcher *p) |
void | intrusive_ptr_release (const RTT::mqueue::Dispatcher *p) |
This object waits on a set of open message queue file descriptors and signals the channel that has received new data. Reasonably, there should be one dispatcher for each peer component sending us data.
Definition at line 62 of file Dispatcher.hpp.
|
private |
Definition at line 69 of file Dispatcher.hpp.
typedef boost::intrusive_ptr<Dispatcher> RTT::mqueue::Dispatcher::shared_ptr |
Definition at line 132 of file Dispatcher.hpp.
|
inlineprivate |
Definition at line 80 of file Dispatcher.hpp.
|
inlineprivate |
Definition at line 85 of file Dispatcher.hpp.
|
inline |
Definition at line 142 of file Dispatcher.hpp.
|
inlinevirtual |
Reimplemented from RTT::Activity.
Definition at line 211 of file Dispatcher.hpp.
|
inlineprivate |
Definition at line 92 of file Dispatcher.hpp.
|
inlinevirtual |
Reimplemented from RTT::Activity.
Definition at line 166 of file Dispatcher.hpp.
|
inlinestatic |
Definition at line 134 of file Dispatcher.hpp.
|
inlinevirtual |
Reimplemented from RTT::Activity.
Definition at line 171 of file Dispatcher.hpp.
|
inlineprivate |
Definition at line 116 of file Dispatcher.hpp.
|
inline |
Definition at line 156 of file Dispatcher.hpp.
|
friend |
Definition at line 45 of file Dispatcher.cpp.
|
friend |
Definition at line 48 of file Dispatcher.cpp.
|
staticprivate |
Definition at line 67 of file Dispatcher.hpp.
|
private |
Definition at line 76 of file Dispatcher.hpp.
|
private |
Definition at line 74 of file Dispatcher.hpp.
|
private |
Definition at line 78 of file Dispatcher.hpp.
|
private |
Definition at line 70 of file Dispatcher.hpp.
|
mutableprivate |
Definition at line 66 of file Dispatcher.hpp.
|
private |
Definition at line 72 of file Dispatcher.hpp.