Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
rtt
base
BufferBase.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
tag: The SourceWorks Tue Sep 7 00:55:18 CEST 2010 BufferBase.cpp
3
4
BufferBase.cpp - description
5
-------------------
6
begin : Tue September 07 2010
7
copyright : (C) 2010 The SourceWorks
8
email : peter@thesourceworks.com
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
40
#include "
BufferBase.hpp
"
41
#include "../ConnPolicy.hpp"
42
43
using namespace
RTT
;
44
using namespace
RTT::base
;
45
46
BufferBase::~BufferBase
() {}
47
48
BufferBase::Options::Options
()
49
: circular_(false)
50
, max_threads_(2)
51
, multiple_writers_(false)
52
, multiple_readers_(false)
53
{}
54
55
BufferBase::Options::Options
(
bool
circular
)
56
:
circular_
(circular)
57
,
max_threads_
(2)
58
,
multiple_writers_
(false)
59
,
multiple_readers_
(false)
60
{}
61
62
BufferBase::Options::Options
(
const
ConnPolicy
&policy)
63
:
circular_
(policy.type ==
ConnPolicy
::CIRCULAR_BUFFER)
64
,
max_threads_
(2)
65
,
multiple_writers_
(policy.buffer_policy ==
PerInputPort
|| policy.buffer_policy ==
Shared
)
66
,
multiple_readers_
(policy.buffer_policy ==
PerOutputPort
|| policy.buffer_policy ==
Shared
)
67
{
68
if
(policy.
max_threads
== 0) {
69
if
(
multiple_writers_
) {
70
max_threads_
+= 10;
71
}
72
if
(
multiple_readers_
) {
73
max_threads_
+= 10;
74
}
75
}
else
{
76
max_threads_
= policy.
max_threads
;
77
}
78
}
RTT::base::BufferBase::Options::multiple_readers_
bool multiple_readers_
Definition:
BufferBase.hpp:64
RTT::base::BufferBase::Options::multiple_writers_
bool multiple_writers_
Definition:
BufferBase.hpp:63
RTT::base::BufferBase::Options::circular
bool circular() const
Definition:
BufferBase.hpp:69
RTT::ConnPolicy
Definition:
ConnPolicy.hpp:107
RTT::base::BufferBase::Options::max_threads_
int max_threads_
Definition:
BufferBase.hpp:62
RTT::base::BufferBase::Options::Options
Options()
Definition:
BufferBase.cpp:48
RTT::PerOutputPort
Definition:
BufferPolicy.hpp:78
RTT::ConnPolicy::max_threads
int max_threads
Definition:
ConnPolicy.hpp:224
BufferBase.hpp
RTT::base
Definition:
ActionInterface.hpp:50
RTT::PerInputPort
Definition:
BufferPolicy.hpp:77
RTT::base::BufferBase::~BufferBase
virtual ~BufferBase()
Definition:
BufferBase.cpp:46
RTT
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
Definition:
Activity.cpp:53
RTT::base::BufferBase::Options::circular_
bool circular_
Definition:
BufferBase.hpp:61
RTT::Shared
Definition:
BufferPolicy.hpp:79
rtt
Author(s): RTT Developers
autogenerated on Tue Jun 25 2019 19:33:20