-
William F Godoy authored
1 Now IO (replaced Method) and is the factory for Variables and Engines 2 Reduced core components to user-public objects only 3 Moved and reorganized all helper functions to helper directory 4 Engines are now lightweight (except for ADIOS1Reader WIP) using MACRO 5 HF5Common and ADIOS1Common (except for Readers WIP) are now part of the toolkit so they can be reused by Engines 6 TransportMan is a new layer for transport management (file is default) 7 DataMan will be implemented under toolkit/transportman/dataman 8 Template separation (tcc and inl) applied all over the code 9 Improved Doxygen documentation Runtime Issues: DataMan library compilation (cacheman) ADIOS1 Warning TestADIOSInterfaceWrite catches exceptions
William F Godoy authored1 Now IO (replaced Method) and is the factory for Variables and Engines 2 Reduced core components to user-public objects only 3 Moved and reorganized all helper functions to helper directory 4 Engines are now lightweight (except for ADIOS1Reader WIP) using MACRO 5 HF5Common and ADIOS1Common (except for Readers WIP) are now part of the toolkit so they can be reused by Engines 6 TransportMan is a new layer for transport management (file is default) 7 DataMan will be implemented under toolkit/transportman/dataman 8 Template separation (tcc and inl) applied all over the code 9 Improved Doxygen documentation Runtime Issues: DataMan library compilation (cacheman) ADIOS1 Warning TestADIOSInterfaceWrite catches exceptions
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
ADIOS1Writer.h 1.73 KiB
/*
* Distributed under the OSI-approved Apache License, Version 2.0. See
* accompanying file Copyright.txt for details.
*
* ADIOS1Writer.h
* 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
*/
#ifndef ADIOS2_ENGINE_ADIOS1_ADIOS1WRITER_H_
#define ADIOS2_ENGINE_ADIOS1_ADIOS1WRITER_H_
#include "adios2/ADIOSConfig.h"
#include "adios2/core/Engine.h"
#include "adios2/toolkit/interop/adios1/ADIOS1Common.h"
namespace adios
{
class ADIOS1Writer : public Engine
{
public:
/**
* Constructor for Writer writes in ADIOS 1.x BP format
* @param name unique name given to the engine
* @param accessMode
* @param mpiComm
* @param method
* @param debugMode
*/
ADIOS1Writer(IO &adios, const std::string &name, const OpenMode openMode,
MPI_Comm mpiComm);
~ADIOS1Writer() = default;
void Advance(const float timeoutSeconds = 0.) final;
/**
* Closes a single transport or all transports
* @param transportIndex, if -1 (default) closes all transports, otherwise
* it
* closes a transport in m_Transport[transportIndex]. In debug mode the
* latter
* is bounds-checked.
*/
void Close(const int transportIndex = -1) final;
private:
interop::ADIOS1Common m_ADIOS1;
void Init() final;
void InitParameters() final;
void InitTransports() final;
#define declare_type(T) \
void DoWrite(Variable<T> &variable, const T *values) final;
ADIOS2_FOREACH_TYPE_1ARG(declare_type)
#undef declare_type
};
} // end namespace adios
#endif /* ADIOS2_ENGINE_ADIOS1_ADIOS1WRITER_H_ */