Home
Downloads
Documentation
Installation
User Guide
man-pages
API Documentation
README
Release Notes
Changes
License
Support
SourceForge Project
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
Pstream
mpi
mpiOPstreamImpl.H
Go to the documentation of this file.
1
/*----------------------------------------------------------------------------*\
2
______ _ ____ __ __
3
| ____| _| |_ / __ \ /\ | \/ |
4
| |__ _ __ ___ ___ / \| | | | / \ | \ / |
5
| __| '__/ _ \/ _ ( (| |) ) | | |/ /\ \ | |\/| |
6
| | | | | __/ __/\_ _/| |__| / ____ \| | | |
7
|_| |_| \___|\___| |_| \____/_/ \_\_| |_|
8
9
FreeFOAM: The Cross-Platform CFD Toolkit
10
11
Copyright (C) 2008-2012 Michael Wild <themiwi@users.sf.net>
12
Gerber van der Graaf <gerber_graaf@users.sf.net>
13
--------------------------------------------------------------------------------
14
License
15
This file is part of FreeFOAM.
16
17
FreeFOAM is free software: you can redistribute it and/or modify it
18
under the terms of the GNU General Public License as published by the
19
Free Software Foundation, either version 3 of the License, or (at your
20
option) any later version.
21
22
FreeFOAM is distributed in the hope that it will be useful, but WITHOUT
23
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
24
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
25
for more details.
26
27
You should have received a copy of the GNU General Public License
28
along with FreeFOAM. If not, see <http://www.gnu.org/licenses/>.
29
30
Class
31
Foam::mpiOPstreamImpl
32
33
Description
34
MPI implementation of the OPstreamImpl abstract base class.
35
36
SourceFiles
37
mpiOPstreamImpl.C
38
39
\*----------------------------------------------------------------------------*/
40
41
#ifndef mpiOPstreamImpl_H
42
#define mpiOPstreamImpl_H
43
44
#include <
OpenFOAM/OPstreamImpl.H
>
45
46
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47
48
namespace
Foam
49
{
50
51
/*---------------------------------------------------------------------------*\
52
Class mpiOPstreamImpl Declaration
53
\*---------------------------------------------------------------------------*/
54
55
class
mpiOPstreamImpl
56
:
57
public
OPstreamImpl
58
{
59
// Private Member Functions
60
61
//- Disallow default bitwise copy construct
62
mpiOPstreamImpl
(
const
mpiOPstreamImpl
&);
63
64
//- Disallow default bitwise assignment
65
void
operator=(
const
mpiOPstreamImpl
&);
66
67
public
:
68
69
// Declare name of the class and its debug switch
70
TypeName
(
"mpiOPstreamImpl"
);
71
72
// Constructors
73
74
//- Construct null
75
mpiOPstreamImpl
(){}
76
77
// Member Functions
78
79
//- Flush the buffer (used in OPstream::~OPstream())
80
virtual
void
flush
81
(
82
const
PstreamImpl::commsTypes
commsType,
83
const
int
toProcNo,
84
const
char
* buf,
85
const
int
bufPosition
86
);
87
88
//- Write given buffer to given processor
89
virtual
bool
write
90
(
91
const
PstreamImpl::commsTypes
commsType,
92
const
int
toProcNo,
93
const
char
* buf,
94
const
std::streamsize bufSize
95
);
96
97
//- Non-blocking writes: wait until all have finished.
98
virtual
void
waitRequests
();
99
100
//- Non-blocking writes: has request i finished?
101
virtual
bool
finishedRequest
(
const
label i);
102
103
};
104
105
106
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
107
108
}
// End namespace Foam
109
110
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
111
112
#endif
113
114
// ************************ vim: set sw=4 sts=4 et: ************************ //