Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
rtt
os
ThreadInterface.hpp
Go to the documentation of this file.
1
/***************************************************************************
2
tag: Peter Soetens Sat May 21 20:15:51 CEST 2005 ThreadInterface.hpp
3
4
ThreadInterface.hpp - description
5
-------------------
6
begin : Sat May 21 2005
7
copyright : (C) 2005 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 OS_THREAD_INTERFACE_HPP
40
#define OS_THREAD_INTERFACE_HPP
41
42
#include "
fosi.h
"
43
#include "
threads.hpp
"
44
#include "
Time.hpp
"
45
#include "../rtt-config.h"
46
47
namespace
RTT
48
{
49
namespace
os
50
{
56
class
RTT_API
ThreadInterface
57
{
58
public
:
59
ThreadInterface
();
60
virtual
~
ThreadInterface
();
61
70
virtual
bool
start() = 0;
71
80
virtual
bool
stop() = 0;
81
85
virtual
Seconds
getPeriod()
const
= 0;
86
92
virtual
bool
setPeriod(
Seconds
new_period) = 0;
93
97
virtual
nsecs
getPeriodNS()
const
= 0;
98
108
virtual
bool
isRunning()
const
= 0;
109
115
virtual
bool
isActive()
const
= 0;
116
120
virtual
const
char
* getName()
const
= 0;
121
128
virtual
RTOS_TASK
* getTask() = 0;
129
133
virtual
const
RTOS_TASK
* getTask()
const
= 0;
134
153
virtual
bool
setScheduler(
int
sched_type) = 0;
154
162
virtual
int
getScheduler()
const
= 0;
163
170
virtual
bool
setPriority(
int
priority) = 0;
171
179
virtual
int
getPriority()
const
= 0;
180
191
virtual
unsigned
int
getPid()
const
= 0;
192
196
virtual
unsigned
getCpuAffinity
()
const
= 0;
197
198
virtual
void
setMaxOverrun(
int
m) = 0;
199
200
virtual
int
getMaxOverrun()
const
= 0;
201
207
virtual
void
setWaitPeriodPolicy(
int
p) = 0;
208
212
virtual
void
yield
() = 0;
213
217
unsigned
int
threadNumber
()
const
218
{
219
return
threadnb;
220
}
221
222
bool
isSelf()
const
;
223
protected
:
229
int
threadnb
;
230
};
231
}
232
}
233
234
#endif
RTT::Seconds
double Seconds
Definition:
os/Time.hpp:53
Time.hpp
threads.hpp
fosi.h
RTT::os::ThreadInterface
Definition:
ThreadInterface.hpp:56
RTT::os::ThreadInterface::threadnb
int threadnb
Definition:
ThreadInterface.hpp:229
RTT::os::ThreadInterface::threadNumber
unsigned int threadNumber() const
Definition:
ThreadInterface.hpp:217
adaptor::yield
static void yield(TaskContext *tc)
Definition:
dataflow_performance_test.cpp:338
adaptor::getCpuAffinity
static std::bitset< 16 > getCpuAffinity(ThreadInterface *thread)
Definition:
dataflow_performance_test.cpp:352
RTT
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
Definition:
Activity.cpp:53
RTT::nsecs
long long nsecs
Definition:
os/Time.hpp:69
RTOS_TASK
Definition:
ecos/fosi.h:74
rtt
Author(s): RTT Developers
autogenerated on Fri Oct 25 2019 03:59:44