Skip to content
Snippets Groups Projects
DataManWriter.h 1.51 KiB
Newer Older
wfg's avatar
wfg committed
/*
 * Distributed under the OSI-approved Apache License, Version 2.0.  See
 * accompanying file Copyright.txt for details.
 *
wfg's avatar
wfg committed
 * DataMan.h
 *
 *  Created on: Jan 10, 2017
 *      Author: wfg
 */

#ifndef ADIOS2_ENGINE_DATAMAN_DATAMAN_WRITER_H_
#define ADIOS2_ENGINE_DATAMAN_DATAMAN_WRITER_H_
wfg's avatar
wfg committed

#include "adios2/ADIOSConfig.h"
#include "adios2/core/Engine.h"
#include "adios2/toolkit/transportman/dataman/DataMan.h"
namespace adios2
wfg's avatar
wfg committed
{

class DataManWriter : public Engine
wfg's avatar
wfg committed
{

public:
William F Godoy's avatar
William F Godoy committed
    DataManWriter(IO &io, const std::string &name, const Mode mode,
                  MPI_Comm mpiComm);
    ~DataManWriter() = default;
William F Godoy's avatar
William F Godoy committed
    StepStatus BeginStep(StepMode mode, const float timeoutSeconds = 0.f) final;
    void EndStep() final;

    void Close(const int transportIndex = -1) final;
    bool m_DoRealTime = false;
    bool m_DoMonitor = false;
Ruonan Wang's avatar
Ruonan Wang committed
    transportman::DataMan m_Man;
    std::function<void(const void *, std::string, std::string, std::string,
                       Dims)>
        m_CallBack; ///< call back function

    void Init(); ///< calls InitCapsules and InitTransports based on Method,
                 /// called from constructor

#define declare_type(T)                                                        \
    void DoPutSync(Variable<T> &variable, const T *values) final;
    ADIOS2_FOREACH_TYPE_1ARG(declare_type)
#undef declare_type
    void PutSyncCommon(Variable<T> &variable, const T *values);
wfg's avatar
wfg committed
};

} // end namespace adios2
wfg's avatar
wfg committed

#endif /* ADIOS2_ENGINE_DATAMAN_DATAMAN_WRITER_H_ */