MADNESS  0.10.1
Static Public Member Functions | List of all members
madness::archive::ArchiveImpl< ParallelOutputArchive< localarchiveT >, T > Struct Template Reference

Specialization of ArchiveImpl for parallel output archives. More...

#include <parallel_archive.h>

Static Public Member Functions

template<typename Q >
static std::enable_if< std::is_base_of< ParallelSerializableObject, Q >::value, const ParallelOutputArchive< localarchiveT > & >::type wrap_store (const ParallelOutputArchive< localarchiveT > &ar, const Q &t)
 Store the data in the archive. More...
 
template<typename Q >
static std::enable_if<!std::is_base_of< ParallelSerializableObject, Q >::value, const ParallelOutputArchive< localarchiveT > & >::type wrap_store (const ParallelOutputArchive< localarchiveT > &ar, const Q &t)
 Store the data in the archive. More...
 

Detailed Description

template<class T, class localarchiveT>
struct madness::archive::ArchiveImpl< ParallelOutputArchive< localarchiveT >, T >

Specialization of ArchiveImpl for parallel output archives.

Attention
No type-checking is performed.
Template Parameters
TThe data type.

Member Function Documentation

◆ wrap_store() [1/2]

template<class T , class localarchiveT >
template<typename Q >
static std::enable_if<std::is_base_of<ParallelSerializableObject, Q>::value, const ParallelOutputArchive<localarchiveT>&>::type madness::archive::ArchiveImpl< ParallelOutputArchive< localarchiveT >, T >::wrap_store ( const ParallelOutputArchive< localarchiveT > &  ar,
const Q t 
)
inlinestatic

Store the data in the archive.

Parallel objects are forwarded to their implementation of parallel store.

The function only appears (due to enable_if) if Q is a parallel serializable object.

Todo:
Is Q necessary? I'm sure it is, but can't figure out why at a first glance.
Template Parameters
QDescription needed.
Parameters
[in]arThe parallel archive.
[in]tThe parallel object to store.
Returns
The parallel archive.

References T().

◆ wrap_store() [2/2]

template<class T , class localarchiveT >
template<typename Q >
static std::enable_if<!std::is_base_of<ParallelSerializableObject, Q>::value, const ParallelOutputArchive<localarchiveT>&>::type madness::archive::ArchiveImpl< ParallelOutputArchive< localarchiveT >, T >::wrap_store ( const ParallelOutputArchive< localarchiveT > &  ar,
const Q t 
)
inlinestatic

Store the data in the archive.

Serial objects write only from process 0.

The function only appears (due to enable_if) if Q is not a parallel serializable object.

Todo:
Same question about Q.
Template Parameters
QDescription needed.
Parameters
[in]arThe parallel archive.
[in]tThe serial data.
Returns
The parallel archive.

References madness::archive::BaseParallelArchive< Archive >::get_world(), madness::archive::BaseParallelArchive< Archive >::local_archive(), and madness::World::rank().


The documentation for this struct was generated from the following file: