Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
rtt
extras
TimerThread.hpp
Go to the documentation of this file.
1
/***************************************************************************
2
tag: Peter Soetens Wed Apr 17 16:01:36 CEST 2002 TimerThread.h
3
4
TimerThread.h - description
5
-------------------
6
begin : Wed April 17 2002
7
copyright : (C) 2002 Peter Soetens
8
email : peter.soetens@mech.kuleuven.ac.be
9
10
***************************************************************************
11
* This library is free software; you can redistribute it and/or *
12
* modify it under the terms of the GNU General Public *
13
* License as published by the Free Software Foundation; *
14
* version 2 of the License. *
15
* *
16
* As a special exception, you may use this file as part of a free *
17
* software library without restriction. Specifically, if other files *
18
* instantiate templates or use macros or inline functions from this *
19
* file, or you compile this file and link it with other files to *
20
* produce an executable, this file does not by itself cause the *
21
* resulting executable to be covered by the GNU General Public *
22
* License. This exception does not however invalidate any other *
23
* reasons why the executable file might be covered by the GNU General *
24
* Public License. *
25
* *
26
* This library is distributed in the hope that it will be useful, *
27
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
28
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
29
* Lesser General Public License for more details. *
30
* *
31
* You should have received a copy of the GNU General Public *
32
* License along with this library; if not, write to the Free Software *
33
* Foundation, Inc., 59 Temple Place, *
34
* Suite 330, Boston, MA 02111-1307 USA *
35
* *
36
***************************************************************************/
37
38
39
#ifndef ORO_TIMERTHREAD_HPP
40
#define ORO_TIMERTHREAD_HPP
41
42
43
#include <list>
44
#include <vector>
45
#include <string>
46
#include <boost/shared_ptr.hpp>
47
#include <boost/weak_ptr.hpp>
48
49
#include "../os/Thread.hpp"
50
#include "../os/Mutex.hpp"
51
#include "
rtt-extras-fwd.hpp
"
52
53
namespace
RTT
54
{
namespace
extras {
55
61
typedef
boost::shared_ptr<TimerThread>
TimerThreadPtr
;
62
69
class
RTT_API
TimerThread
70
:
public
os::Thread
71
{
72
typedef
std::vector<PeriodicActivity*>
ActivityList
;
73
ActivityList
tasks
;
74
bool
cleanup
;
75
public
:
76
static
const
unsigned
int
MAX_ACTIVITIES = 64;
85
TimerThread
(
int
priority,
const
std::string& name,
double
periodicity,
unsigned
cpu_affinity = ~0);
86
97
TimerThread
(
int
scheduler,
int
priority,
const
std::string& name,
double
periodicity,
unsigned
cpu_affinity = ~0);
98
102
virtual
~
TimerThread
();
103
108
bool
addActivity(
PeriodicActivity
* t );
109
110
bool
removeActivity(
PeriodicActivity
* t );
111
116
static
TimerThreadPtr Instance(
int
priority,
double
periodicity);
120
static
TimerThreadPtr Instance(
int
scheduler,
int
priority,
double
periodicity);
124
static
TimerThreadPtr Instance(
int
scheduler,
int
priority,
double
periodicity,
unsigned
cpu_affinity);
125
protected
:
126
virtual
bool
initialize();
127
virtual
void
step();
128
virtual
void
finalize();
129
void
reorderList();
134
mutable
os::MutexRecursive
mutex
;
135
140
typedef
std::vector< boost::weak_ptr<TimerThread> >
TimerThreadList
;
141
145
static
TimerThreadList
TimerThreads
;
146
};
147
}}
// namespace RTT
148
149
#endif
RTT::extras::TimerThread
Definition:
TimerThread.hpp:69
RTT::os::Thread
Definition:
Thread.hpp:109
RTT::extras::TimerThread::TimerThreadList
std::vector< boost::weak_ptr< TimerThread > > TimerThreadList
Definition:
TimerThread.hpp:140
RTT::extras::TimerThread::mutex
os::MutexRecursive mutex
Definition:
TimerThread.hpp:134
RTT::extras::TimerThread::ActivityList
std::vector< PeriodicActivity * > ActivityList
Definition:
TimerThread.hpp:72
rtt-extras-fwd.hpp
RTT::extras::TimerThreadPtr
boost::shared_ptr< TimerThread > TimerThreadPtr
Definition:
TimerThread.hpp:61
RTT::extras::TimerThread::TimerThreads
static TimerThreadList TimerThreads
Definition:
TimerThread.hpp:145
RTT::extras::TimerThread::cleanup
bool cleanup
Definition:
TimerThread.hpp:74
RTT::extras::PeriodicActivity
A PeriodicActivity is the general implementation of a Activity which has (realtime) periodic constrai...
Definition:
PeriodicActivity.hpp:70
RTT::extras::TimerThread::tasks
ActivityList tasks
Definition:
TimerThread.hpp:73
RTT
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
Definition:
Activity.cpp:53
RTT::os::MutexRecursive
An object oriented wrapper around a recursive mutex.
Definition:
Mutex.hpp:218
rtt
Author(s): RTT Developers
autogenerated on Tue Jun 25 2019 19:33:37