RigsofRods
Soft-body Physics Simulation
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
Functions
_
a
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
Variables
a
b
c
d
e
f
g
i
k
l
m
n
p
r
s
t
u
v
w
Typedefs
a
c
d
e
f
g
l
m
n
o
p
r
s
t
v
w
Enumerations
a
b
c
d
e
f
g
h
i
k
l
m
n
p
r
s
t
u
v
w
Enumerator
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
Enumerations
a
b
c
d
g
h
l
m
n
o
p
r
s
t
v
Enumerator
a
b
c
d
f
g
h
l
m
n
o
r
s
t
v
Related Functions
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
Variables
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
Typedefs
Enumerations
Enumerator
k
o
Macros
_
a
b
c
d
e
f
h
i
l
m
n
o
p
r
s
t
x
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
source
main
utils
InterThreadStoreVector.h
Go to the documentation of this file.
1
/*
2
This source file is part of Rigs of Rods
3
Copyright 2005-2012 Pierre-Michel Ricordel
4
Copyright 2007-2012 Thomas Fischer
5
6
For more information, see http://www.rigsofrods.org/
7
8
Rigs of Rods is free software: you can redistribute it and/or modify
9
it under the terms of the GNU General Public License version 3, as
10
published by the Free Software Foundation.
11
12
Rigs of Rods is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
16
17
You should have received a copy of the GNU General Public License
18
along with Rigs of Rods. If not, see <http://www.gnu.org/licenses/>.
19
*/
20
21
#pragma once
22
23
#include "
Application.h
"
24
25
#include <mutex>
26
28
template
<
class
T>
29
class
InterThreadStoreVector
30
{
31
public
:
32
33
void
push
(T v)
34
{
35
std::lock_guard<std::mutex> lock(
m_vector_mutex
);
36
store
.push_back(v);
37
}
38
39
void
pull
(std::vector<T>& res)
40
{
41
std::lock_guard<std::mutex> lock(
m_vector_mutex
);
42
res =
store
;
43
store
.clear();
44
}
45
46
protected
:
47
48
std::mutex
m_vector_mutex
;
49
std::vector<T>
store
;
50
};
InterThreadStoreVector
this class is a helper to exchange data in a class between different threads, it can be pushed and pu...
Definition:
InterThreadStoreVector.h:29
Application.h
Central state/object manager and communications hub.
InterThreadStoreVector::push
void push(T v)
Definition:
InterThreadStoreVector.h:33
InterThreadStoreVector::m_vector_mutex
std::mutex m_vector_mutex
Definition:
InterThreadStoreVector.h:48
InterThreadStoreVector::store
std::vector< T > store
Definition:
InterThreadStoreVector.h:49
InterThreadStoreVector::pull
void pull(std::vector< T > &res)
Definition:
InterThreadStoreVector.h:39
Generated by
1.8.17