Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
RTT::corba::CorbaDispatcher Class Reference

#include <CorbaDispatcher.hpp>

Inheritance diagram for RTT::corba::CorbaDispatcher:
Inheritance graph
[legend]

Public Member Functions

bool breakLoop ()
 
void cancelChannel (base::ChannelElementBase::shared_ptr chan)
 
void dispatchChannel (base::ChannelElementBase::shared_ptr chan)
 
bool initialize ()
 
void loop ()
 
- Public Member Functions inherited from RTT::Activity
 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::ThreadInterfacethread ()
 
virtual bool timeout ()
 
virtual bool trigger ()
 
virtual void work (base::RunnableInterface::WorkReason reason)
 
virtual ~Activity ()
 
- Public Member Functions inherited from RTT::base::ActivityInterface
 ActivityInterface ()
 
 ActivityInterface (RunnableInterface *run)
 
virtual RunnableInterfacegetRunner () const
 
virtual bool run (RunnableInterface *r)
 
virtual ~ActivityInterface ()
 
- Public Member Functions inherited from RTT::os::Thread
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_TASKgetTask ()
 
virtual const RTOS_TASKgetTask () 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 ()
 
- Public Member Functions inherited from RTT::os::ThreadInterface
bool isSelf () const
 
 ThreadInterface ()
 
unsigned int threadNumber () const
 
virtual ~ThreadInterface ()
 

Static Public Member Functions

static void hasElement (base::ChannelElementBase::shared_ptr c0, base::ChannelElementBase::shared_ptr c1, bool &result)
 
static CorbaDispatcherInstance (DataFlowInterface *iface)
 
static void Release (DataFlowInterface *iface)
 
static void ReleaseAll ()
 
- Static Public Member Functions inherited from RTT::os::Thread
static void setLockTimeoutNoPeriod (double timeout_in_s)
 
static void setLockTimeoutPeriodFactor (double factor)
 
static void setStackSize (unsigned int ssize)
 

Private Types

typedef std::map< DataFlowInterface *, CorbaDispatcher * > DispatchMap
 
typedef internal::List< base::ChannelElementBase::shared_ptrRCList
 

Private Member Functions

 CorbaDispatcher (const std::string &name)
 
 CorbaDispatcher (const std::string &name, int scheduler, int priority, unsigned cpu_affinity)
 
 ~CorbaDispatcher ()
 

Private Attributes

bool do_exit
 
RCList RClist
 

Static Private Attributes

static RTT_CORBA_API int defaultCpuAffinity = 0
 
static RTT_CORBA_API int defaultPriority = os::LowestPriority
 
static RTT_CORBA_API int defaultScheduler = ORO_SCHED_RT
 
static RTT_CORBA_API DispatchMap DispatchI
 
static RTT_CORBA_API os::Mutexmlock = 0
 

Additional Inherited Members

- Public Types inherited from RTT::base::ActivityInterface
typedef boost::shared_ptr< ActivityInterfaceshared_ptr
 
- Protected Member Functions inherited from RTT::base::ActivityInterface
void disableRun (RunnableInterface *caller)
 
- Protected Member Functions inherited from RTT::os::Thread
void emergencyStop ()
 
void terminate ()
 
- Protected Attributes inherited from RTT::Activity
os::Condition msg_cond
 
os::Mutex msg_lock
 
bool mstopRequested
 
bool mtimeout
 
int mwaitpolicy
 
double update_period
 
- Protected Attributes inherited from RTT::base::ActivityInterface
RunnableInterfacerunner
 
- Protected Attributes inherited from RTT::os::Thread
bool active
 
MutexRecursive breaker
 
bool inloop
 
int maxOverRun
 
int msched_type
 
NANO_TIME period
 
bool prepareForExit
 
RTOS_TASK rtos_task
 
bool running
 
rt_sem_t sem
 
double stopTimeout
 
- Protected Attributes inherited from RTT::os::ThreadInterface
int threadnb
 
- Static Protected Attributes inherited from RTT::os::Thread
static unsigned int default_stack_size = 0
 
static double lock_timeout_no_period_in_s = 1.0
 
static double lock_timeout_period_factor = 10.0
 

Detailed Description

This object sends over data flow messages from local buffers to a remote channel element.

Definition at line 58 of file CorbaDispatcher.hpp.

Member Typedef Documentation

Definition at line 60 of file CorbaDispatcher.hpp.

Definition at line 63 of file CorbaDispatcher.hpp.

Constructor & Destructor Documentation

RTT::corba::CorbaDispatcher::CorbaDispatcher ( const std::string &  name)
inlineprivate

Definition at line 74 of file CorbaDispatcher.hpp.

RTT::corba::CorbaDispatcher::CorbaDispatcher ( const std::string &  name,
int  scheduler,
int  priority,
unsigned  cpu_affinity 
)
inlineprivate

Definition at line 80 of file CorbaDispatcher.hpp.

RTT::corba::CorbaDispatcher::~CorbaDispatcher ( )
inlineprivate

Definition at line 86 of file CorbaDispatcher.hpp.

Member Function Documentation

bool RTT::corba::CorbaDispatcher::breakLoop ( )
inlinevirtual
See also
base::RunnableInterface::breakLoop()

Reimplemented from RTT::Activity.

Definition at line 215 of file CorbaDispatcher.hpp.

void RTT::corba::CorbaDispatcher::cancelChannel ( base::ChannelElementBase::shared_ptr  chan)
inline

Definition at line 195 of file CorbaDispatcher.hpp.

void RTT::corba::CorbaDispatcher::dispatchChannel ( base::ChannelElementBase::shared_ptr  chan)
inline

Definition at line 187 of file CorbaDispatcher.hpp.

static void RTT::corba::CorbaDispatcher::hasElement ( base::ChannelElementBase::shared_ptr  c0,
base::ChannelElementBase::shared_ptr  c1,
bool &  result 
)
inlinestatic

Definition at line 182 of file CorbaDispatcher.hpp.

bool RTT::corba::CorbaDispatcher::initialize ( )
inlinevirtual
See also
base::RunnableInterface::initialize()

Reimplemented from RTT::Activity.

Definition at line 199 of file CorbaDispatcher.hpp.

static CorbaDispatcher* RTT::corba::CorbaDispatcher::Instance ( DataFlowInterface iface)
inlinestatic

Create a new dispatcher for a given data flow interface. This method will only lock and allocate when a new dispatcher must be created, otherwise, the access is lock-free and real-time. One dispatcher per iface is created.

Parameters
ifaceThe interface to dispatch data flow messages for.
Returns

Definition at line 99 of file CorbaDispatcher.hpp.

void RTT::corba::CorbaDispatcher::loop ( )
inlinevirtual
See also
base::RunnableInterface::loop()

Reimplemented from RTT::Activity.

Definition at line 205 of file CorbaDispatcher.hpp.

static void RTT::corba::CorbaDispatcher::Release ( DataFlowInterface iface)
inlinestatic

Releases and cleans up a specific interface from dispatching.

Parameters
iface

Definition at line 156 of file CorbaDispatcher.hpp.

static void RTT::corba::CorbaDispatcher::ReleaseAll ( )
inlinestatic

May be called during program termination to clean up all resources.

Definition at line 171 of file CorbaDispatcher.hpp.

Member Data Documentation

int RTT::CorbaDispatcher::defaultCpuAffinity = 0
staticprivate

Definition at line 72 of file CorbaDispatcher.hpp.

int RTT::CorbaDispatcher::defaultPriority = os::LowestPriority
staticprivate

Definition at line 71 of file CorbaDispatcher.hpp.

int RTT::CorbaDispatcher::defaultScheduler = ORO_SCHED_RT
staticprivate

Definition at line 70 of file CorbaDispatcher.hpp.

CorbaDispatcher::DispatchMap RTT::CorbaDispatcher::DispatchI
staticprivate

Definition at line 61 of file CorbaDispatcher.hpp.

bool RTT::corba::CorbaDispatcher::do_exit
private

Definition at line 66 of file CorbaDispatcher.hpp.

RTT_CORBA_API os::Mutex * RTT::CorbaDispatcher::mlock = 0
staticprivate

Definition at line 68 of file CorbaDispatcher.hpp.

RCList RTT::corba::CorbaDispatcher::RClist
private

Definition at line 64 of file CorbaDispatcher.hpp.


The documentation for this class was generated from the following files:


rtt
Author(s): RTT Developers
autogenerated on Fri Oct 25 2019 03:59:46