Home
About Us
Publications
Developers
Installation
Examples
Documentation
SomeWebsiteLogo
Home
About Us
Publications
Developers
Installation
Examples
Documentation
include
libmesh
post_wait_copy_buffer.h
Go to the documentation of this file.
1
// The libMesh Finite Element Library.
2
// Copyright (C) 2002-2018 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3
4
// This library is free software; you can redistribute it and/or
5
// modify it under the terms of the GNU Lesser General Public
6
// License as published by the Free Software Foundation; either
7
// version 2.1 of the License, or (at your option) any later version.
8
9
// This library is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
// Lesser General Public License for more details.
13
14
// You should have received a copy of the GNU Lesser General Public
15
// License along with this library; if not, write to the Free Software
16
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
18
19
#ifndef LIBMESH_POST_WAIT_COPY_BUFFER_H
20
#define LIBMESH_POST_WAIT_COPY_BUFFER_H
21
22
// Parallel includes
23
#include "
libmesh/post_wait_work.h
"
24
25
// libMesh Includes
26
#include "
libmesh/libmesh_common.h
"
27
28
// C++ includes
29
#include <algorithm>
30
31
namespace
libMesh
32
{
33
34
namespace
Parallel
35
{
36
37
// PostWaitWork specialization for copying from temporary to
38
// output containers
39
template
<
typename
Container,
typename
OutputIter>
40
struct
PostWaitCopyBuffer
:
public
PostWaitWork
{
41
PostWaitCopyBuffer
(
const
Container & buffer,
const
OutputIter
out
)
42
:
_buf
(buffer),
_out
(
out
) {}
43
44
virtual
void
run
()
override
{ std::copy(
_buf
.begin(),
_buf
.end(),
_out
); }
45
46
private
:
47
const
Container &
_buf
;
48
OutputIter
_out
;
49
};
50
51
}
// namespace Parallel
52
53
}
// namespace libMesh
54
55
#endif // LIBMESH_POST_WAIT_COPY_BUFFER_H
libMesh::Parallel::PostWaitCopyBuffer
Definition:
post_wait_copy_buffer.h:40
libMesh
Definition:
default_coupling.C:31
libMesh::Parallel::PostWaitCopyBuffer::PostWaitCopyBuffer
PostWaitCopyBuffer(const Container &buffer, const OutputIter out)
Definition:
post_wait_copy_buffer.h:41
libmesh_common.h
post_wait_work.h
libMesh::Parallel::PostWaitCopyBuffer::run
virtual void run() override
Definition:
post_wait_copy_buffer.h:44
libMesh::Parallel::PostWaitCopyBuffer::_buf
const Container & _buf
Definition:
post_wait_copy_buffer.h:47
libMesh::Parallel::PostWaitWork
Definition:
post_wait_work.h:43
libMesh::out
OStreamProxy out(std::cout)
Definition:
libmesh_common.h:228
libMesh::Parallel::PostWaitCopyBuffer::_out
OutputIter _out
Definition:
post_wait_copy_buffer.h:48
generated by