Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
rtt
base
DataObject.hpp
Go to the documentation of this file.
1
/***************************************************************************
2
tag: Peter Soetens Mon Jan 19 14:11:26 CET 2004 DataObject.hpp
3
4
DataObject.hpp - description
5
-------------------
6
begin : Mon January 19 2004
7
copyright : (C) 2004 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
#ifndef CORELIB_DATAOBJECT_HPP
39
#define CORELIB_DATAOBJECT_HPP
40
41
#include "../rtt-config.h"
42
49
#if defined(OROBLD_OS_NO_ASM)
50
#include "
DataObjectLocked.hpp
"
51
#else
52
#include "
DataObjectLocked.hpp
"
53
#include "
DataObjectLockFree.hpp
"
54
#endif
55
56
namespace
RTT
57
{
namespace
base
{
58
64
template
<
class
T >
65
class
DataObject
66
#if defined(OROBLD_OS_NO_ASM)
67
:
public
DataObjectLocked
<T>
68
#else
69
:
public
DataObjectLockFree
<T>
70
#endif
71
{
72
public
:
76
typedef
T
DataType
;
77
typedef
T
value_t
;
78
79
public
:
83
DataObject
(
const
T& initial_value = T())
84
#if defined(OROBLD_OS_NO_ASM)
85
:
DataObjectLocked<T>
(initial_value)
86
#
else
87
:
DataObjectLockFree<T>
(initial_value)
88
#endif
89
{}
90
};
91
}}
92
93
#endif
94
RTT::base::DataObject::DataType
T DataType
Definition:
DataObject.hpp:76
RTT::base::DataObject::DataObject
DataObject(const T &initial_value=T())
Definition:
DataObject.hpp:83
RTT::base::DataObjectLockFree
This DataObject is a Lock-Free implementation, such that reads and writes can happen concurrently wit...
Definition:
DataObjectLockFree.hpp:80
base
RTT::base::DataObject
Definition:
DataObject.hpp:65
RTT::base::DataObjectLocked
A class which provides locked/protected access to one typed element of data.
Definition:
DataObjectLocked.hpp:57
DataObjectLockFree.hpp
RTT
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
Definition:
Activity.cpp:53
RTT::base::DataObject::value_t
T value_t
Definition:
DataObject.hpp:77
DataObjectLocked.hpp
rtt
Author(s): RTT Developers
autogenerated on Tue Jun 25 2019 19:33:23