|  | fpmas 1.6
    | 
#include <fstream>#include <sstream>#include "fpmas/api/runtime/runtime.h"#include "fpmas/scheduler/scheduler.h"#include "fpmas/api/io/output.h"#include "fpmas/communication/communication.h"

Go to the source code of this file.
| Classes | |
| struct | fpmas::io::Void | 
| struct | fpmas::io::Local< T > | 
| class | fpmas::io::Local< T >::Single | 
| class | fpmas::io::Local< T >::All | 
| struct | fpmas::io::Reduce< T, BinaryOp, Mpi > | 
| class | fpmas::io::Reduce< T, BinaryOp, Mpi >::Single | 
| class | fpmas::io::Reduce< T, BinaryOp, Mpi >::All | 
| class | fpmas::io::Cout | 
| class | fpmas::io::StringOutput | 
| class | fpmas::io::FileOutput | 
| class | fpmas::io::DynamicFileOutput | 
| class | fpmas::io::OutputTask | 
| class | fpmas::io::OutputBase | 
| Namespaces | |
| namespace | fpmas | 
| namespace | fpmas::io | 
fpmas::api::output related implementations.
FPMAS defines a powerful output system that can be used to efficiently and easily collect data accross processes.
Data can be locally fetched on each process using a Watcher instance. Data can then be gathered, summed, filtered or any other operation thanks to the usage of DistributedOperation types, described below. For concrete usage and implementations, see fpmas::output::Local, fpmas::output::Reduce and fpmas::output::DistributedCsvOutput.
A DistributedOperation, that can for example be used by fpmas::output::DistributedCsvOutput to specify distributed CSV fields, must satisfy the following requirements.
| Member Type | Description | 
|---|---|
| Type | Datatype used by local watchers | 
| Params | Extra parameters that can be passed to SingleorAll | 
| Single | Operator used when data must be returned on a single process | 
| All | Operator used when data must be returned on all processes | 
In addition, Single and All must satisfy the following requirements:
Single must define a constructor with the following signature: 
| comm | MPI communicator | 
| root | process on which data must be returned. Data returned on all other processes is undefined. | 
| watcher | local watcher used on each process | 
| params | extra parameters | 
Single must define a call operator that does not take any parameter and returns a instance of Type: 
 This method must return fetched data if the current process is root: results returned on other processes are undefined.
All must define a constructor with the following signature: 
| comm | MPI communicator | 
| watcher | local watcher used on each process | 
| params | extra parameters | 
All must define a call operator that does not take any parameter and returns a instance of Type: 
This method must return fetched data on all processes. Notice that this does not mean that fetched data is the same on all processes (see for example fpmas::output::Local).