From 3738a897c39e3a243ef8bfbb82e1f926d646c7e9 Mon Sep 17 00:00:00 2001 From: Norbert Podhorszki <pnorbert@ornl.gov> Date: Wed, 12 Apr 2017 10:19:41 -0400 Subject: [PATCH] Fix up ADIOS1Reader to at least compile the whole code base. It does no reading yet. --- include/engine/adios1/ADIOS1Reader.h | 2 + source/engine/adios1/ADIOS1Reader.cpp | 101 +++++++++----------------- 2 files changed, 38 insertions(+), 65 deletions(-) diff --git a/include/engine/adios1/ADIOS1Reader.h b/include/engine/adios1/ADIOS1Reader.h index 53fb32bec..baf55f416 100644 --- a/include/engine/adios1/ADIOS1Reader.h +++ b/include/engine/adios1/ADIOS1Reader.h @@ -101,6 +101,8 @@ public: private: void Init(); ///< called from constructor, gets the selected ADIOS1 /// transport method from settings + void InitParameters(); + void InitTransports(); template <class T> Variable<T> *InquireVariableCommon(const std::string &name, diff --git a/source/engine/adios1/ADIOS1Reader.cpp b/source/engine/adios1/ADIOS1Reader.cpp index 55a745a0e..f938277af 100644 --- a/source/engine/adios1/ADIOS1Reader.cpp +++ b/source/engine/adios1/ADIOS1Reader.cpp @@ -2,14 +2,14 @@ * Distributed under the OSI-approved Apache License, Version 2.0. See * accompanying file Copyright.txt for details. * - * BPFileReader.cpp + * ADIOS1Reader.cpp * * Created on: Feb 27, 2017 * Author: wfg */ +#include "engine/adios1/ADIOS1Reader.h" #include "core/Support.h" -#include "engine/bp/BPFileReader.h" #include "functions/adiosFunctions.h" // CSVToVector #include "transport/file/FStream.h" // uses C++ fstream #include "transport/file/FileDescriptor.h" // uses POSIX @@ -21,127 +21,128 @@ namespace adios ADIOS1Reader::ADIOS1Reader(ADIOS &adios, const std::string &name, const std::string accessMode, MPI_Comm mpiComm, const Method &method) -: Engine(adios, "BPFileReader", name, accessMode, mpiComm, method, - " BPFileReader constructor (or call to ADIOS Open).\n") +: Engine(adios, "ADIOS1Reader", name, accessMode, mpiComm, method, + " ADIOS1Reader constructor (or call to ADIOS Open).\n") { Init(); + adios_read_init_method(read_method, mpiComm, ""); } -BPFileReader::~BPFileReader() {} +ADIOS1Reader::~ADIOS1Reader() {} Variable<void> * -BPFileReader::InquireVariable(const std::string &variableName, +ADIOS1Reader::InquireVariable(const std::string &variableName, const bool readIn) // not yet implemented { return nullptr; } Variable<char> * -BPFileReader::InquireVariableChar(const std::string &variableName, +ADIOS1Reader::InquireVariableChar(const std::string &variableName, const bool readIn) { return InquireVariableCommon<char>(variableName, readIn); } Variable<unsigned char> * -BPFileReader::InquireVariableUChar(const std::string &variableName, +ADIOS1Reader::InquireVariableUChar(const std::string &variableName, const bool readIn) { return InquireVariableCommon<unsigned char>(variableName, readIn); } Variable<short> * -BPFileReader::InquireVariableShort(const std::string &variableName, +ADIOS1Reader::InquireVariableShort(const std::string &variableName, const bool readIn) { return InquireVariableCommon<short>(variableName, readIn); } Variable<unsigned short> * -BPFileReader::InquireVariableUShort(const std::string &variableName, +ADIOS1Reader::InquireVariableUShort(const std::string &variableName, const bool readIn) { return InquireVariableCommon<unsigned short>(variableName, readIn); } -Variable<int> *BPFileReader::InquireVariableInt(const std::string &variableName, +Variable<int> *ADIOS1Reader::InquireVariableInt(const std::string &variableName, const bool readIn) { return InquireVariableCommon<int>(variableName, readIn); } Variable<unsigned int> * -BPFileReader::InquireVariableUInt(const std::string &variableName, +ADIOS1Reader::InquireVariableUInt(const std::string &variableName, const bool readIn) { return InquireVariableCommon<unsigned int>(variableName, readIn); } Variable<long int> * -BPFileReader::InquireVariableLInt(const std::string &variableName, +ADIOS1Reader::InquireVariableLInt(const std::string &variableName, const bool readIn) { return InquireVariableCommon<long int>(variableName, readIn); } Variable<unsigned long int> * -BPFileReader::InquireVariableULInt(const std::string &variableName, +ADIOS1Reader::InquireVariableULInt(const std::string &variableName, const bool readIn) { return InquireVariableCommon<unsigned long int>(variableName, readIn); } Variable<long long int> * -BPFileReader::InquireVariableLLInt(const std::string &variableName, +ADIOS1Reader::InquireVariableLLInt(const std::string &variableName, const bool readIn) { return InquireVariableCommon<long long int>(variableName, readIn); } Variable<unsigned long long int> * -BPFileReader::InquireVariableULLInt(const std::string &variableName, +ADIOS1Reader::InquireVariableULLInt(const std::string &variableName, const bool readIn) { return InquireVariableCommon<unsigned long long int>(variableName, readIn); } Variable<float> * -BPFileReader::InquireVariableFloat(const std::string &variableName, +ADIOS1Reader::InquireVariableFloat(const std::string &variableName, const bool readIn) { return InquireVariableCommon<float>(variableName, readIn); } Variable<double> * -BPFileReader::InquireVariableDouble(const std::string &variableName, +ADIOS1Reader::InquireVariableDouble(const std::string &variableName, const bool readIn) { return InquireVariableCommon<double>(variableName, readIn); } Variable<long double> * -BPFileReader::InquireVariableLDouble(const std::string &variableName, +ADIOS1Reader::InquireVariableLDouble(const std::string &variableName, const bool readIn) { return InquireVariableCommon<long double>(variableName, readIn); } Variable<std::complex<float>> * -BPFileReader::InquireVariableCFloat(const std::string &variableName, +ADIOS1Reader::InquireVariableCFloat(const std::string &variableName, const bool readIn) { return InquireVariableCommon<std::complex<float>>(variableName, readIn); } Variable<std::complex<double>> * -BPFileReader::InquireVariableCDouble(const std::string &variableName, +ADIOS1Reader::InquireVariableCDouble(const std::string &variableName, const bool readIn) { return InquireVariableCommon<std::complex<double>>(variableName, readIn); } Variable<std::complex<long double>> * -BPFileReader::InquireVariableCLDouble(const std::string &variableName, +ADIOS1Reader::InquireVariableCLDouble(const std::string &variableName, const bool readIn) { return InquireVariableCommon<std::complex<long double>>(variableName, @@ -149,31 +150,34 @@ BPFileReader::InquireVariableCLDouble(const std::string &variableName, } VariableCompound * -BPFileReader::InquireVariableCompound(const std::string &variableName, +ADIOS1Reader::InquireVariableCompound(const std::string &variableName, const bool readIn) { return nullptr; } -void BPFileReader::Close(const int transportIndex) {} +void ADIOS1Reader::Close(const int transportIndex) {} // PRIVATE -void BPFileReader::Init() +void ADIOS1Reader::Init() { if (m_DebugMode == true) { if (m_AccessMode != "r" && m_AccessMode != "read") throw std::invalid_argument( - "ERROR: BPFileReader doesn't support access mode " + + "ERROR: ADIOS1Reader doesn't support access mode " + m_AccessMode + - ", in call to ADIOS Open or BPFileReader constructor\n"); + ", in call to ADIOS Open or ADIOS1Reader constructor\n"); } - + InitParameters(); InitTransports(); } -void BPFileReader::InitTransports() // maybe move this? +void ADIOS1Reader::InitParameters() {} + +void ADIOS1Reader::InitTransports() { + if (m_DebugMode == true) { if (TransportNamesUniqueness() == false) @@ -188,43 +192,10 @@ void BPFileReader::InitTransports() // maybe move this? for (const auto ¶meters : m_Method.m_TransportParameters) { auto itTransport = parameters.find("transport"); - if (itTransport->second == "file" || itTransport->second == "File") + if (itTransport->second == "file" || itTransport->second == "File" || + itTransport->second == "bp" || itTransport->second == "BP") { - auto itLibrary = parameters.find("library"); - if (itLibrary == parameters.end() || - itLibrary->second == "POSIX") // use default POSIX - { - auto file = std::make_shared<transport::FileDescriptor>( - m_MPIComm, m_DebugMode); - // m_BP1Reader.OpenRankFiles( m_Name, m_AccessMode, *file ); - m_Transports.push_back(std::move(file)); - } - else if (itLibrary->second == "FILE*" || - itLibrary->second == "stdio.h") - { - auto file = std::make_shared<transport::FilePointer>( - m_MPIComm, m_DebugMode); - // m_BP1Reader.OpenRankFiles( m_Name, m_AccessMode, *file ); - m_Transports.push_back(std::move(file)); - } - else if (itLibrary->second == "fstream" || - itLibrary->second == "std::fstream") - { - auto file = std::make_shared<transport::FStream>(m_MPIComm, - m_DebugMode); - // m_BP1Reader.OpenRankFiles( m_Name, m_AccessMode, *file ); - m_Transports.push_back(std::move(file)); - } - else if (itLibrary->second == "MPI-IO") - { - } - else - { - if (m_DebugMode == true) - throw std::invalid_argument( - "ERROR: file transport library " + itLibrary->second + - " not supported, in " + m_Name + m_EndMessage); - } + read_method = ADIOS_READ_METHOD_BP; } else { -- GitLab