Newer
Older
* Distributed under the OSI-approved Apache License, Version 2.0. See
* accompanying file Copyright.txt for details.
*
* ADIOS1Writer.cpp
* Class to write files using old adios 1.x library.
* It requires adios 1.x installed
*
* Created on: Mar 27, 2017
* Author: Norbert Podhorszki pnorbert@ornl.gov
#include "ADIOS1Writer.h"
#include "adios2/helper/adiosFunctions.h"
Atkins, Charles Vernon
committed
// Enable compatibility with ADIOS 1.10 adios_declare_group signature
#if !ADIOS_VERSION_GE(1, 11, 0)
#define adios_stat_default adios_flag_yes
#endif
ADIOS1Writer::ADIOS1Writer(IO &io, const std::string &name,
const OpenMode openMode, MPI_Comm mpiComm)
: Engine("ADIOS1Writer", io, name, openMode, mpiComm),
m_ADIOS1(io.m_Name, name, openMode, mpiComm, io.m_DebugMode)
m_EndMessage = " in call to ADIOS1Writer " + m_Name + " Open\n";
InitParameters();
InitTransports();
#define declare_type(T) \
void ADIOS1Writer::DoWrite(Variable<T> &variable, const T *values) \
{ \
m_ADIOS1.WriteVariable(variable.m_Name, variable.m_ShapeID, \
variable.m_Count, variable.m_Shape, \
variable.m_Start, values); \
ADIOS2_FOREACH_TYPE_1ARG(declare_type)
#undef declare_type
void ADIOS1Writer::Advance(const float /*timeout_sec*/) { m_ADIOS1.Advance(); }
void ADIOS1Writer::Close(const int transportIndex) { m_ADIOS1.Close(); }
// PRIVATE FUNCTIONS
void ADIOS1Writer::InitParameters()
{
m_ADIOS1.InitParameters(m_IO.m_Parameters);
}
void ADIOS1Writer::InitTransports()
{
m_ADIOS1.InitTransports(m_IO.m_TransportsParameters);