From 4afa011d9c4b25c59b470a8f5acb0b6b5940ac85 Mon Sep 17 00:00:00 2001 From: Jason Wang <wangr1@ornl.gov> Date: Thu, 13 Apr 2017 11:15:21 -0400 Subject: [PATCH] fixed a few more problems for PR #56 --- include/engine/dataman/DataManReader.h | 2 +- include/engine/dataman/DataManWriter.h | 2 +- include/transport/wan/MdtmMan.h | 4 +- .../utilities/realtime/dataman/DataManBase.h | 28 +------------- source/ADIOS.cpp | 8 ++-- source/engine/dataman/DataManReader.cpp | 4 -- source/engine/dataman/DataManWriter.cpp | 2 - source/transport/wan/MdtmMan.cpp | 6 +-- .../realtime/dataman/DataManBase.cpp | 38 +++++++++++++++++++ 9 files changed, 50 insertions(+), 44 deletions(-) diff --git a/include/engine/dataman/DataManReader.h b/include/engine/dataman/DataManReader.h index dfa3d77f4..f29494f45 100644 --- a/include/engine/dataman/DataManReader.h +++ b/include/engine/dataman/DataManReader.h @@ -43,7 +43,7 @@ public: const std::string accessMode, MPI_Comm mpiComm, const Method &method); - ~DataManReader(); + virtual ~DataManReader() = default; /** * Set callback function from user application diff --git a/include/engine/dataman/DataManWriter.h b/include/engine/dataman/DataManWriter.h index 667498dbc..9902afb02 100644 --- a/include/engine/dataman/DataManWriter.h +++ b/include/engine/dataman/DataManWriter.h @@ -44,7 +44,7 @@ public: const std::string accessMode, MPI_Comm mpiComm, const Method &method); - ~DataManWriter(); + virtual ~DataManWriter() = default; void SetCallBack(std::function<void(const void *, std::string, std::string, std::string, Dims)> diff --git a/include/transport/wan/MdtmMan.h b/include/transport/wan/MdtmMan.h index 7ddd162ac..78f0f92b8 100644 --- a/include/transport/wan/MdtmMan.h +++ b/include/transport/wan/MdtmMan.h @@ -14,7 +14,7 @@ #include "core/Transport.h" #include "external/json.hpp" -#include "DataMan.h" //here comes your DataMan header +#include "utilities/realtime/dataman/DataManBase.h" namespace adios { @@ -43,7 +43,7 @@ public: const std::vector<int> priorities, MPI_Comm mpiComm, const bool debugMode); - ~MdtmMan(); + virtual ~MdtmMan() = default; void Open(const std::string name, const std::string accessMode); diff --git a/include/utilities/realtime/dataman/DataManBase.h b/include/utilities/realtime/dataman/DataManBase.h index 406eb02bf..9d1445742 100644 --- a/include/utilities/realtime/dataman/DataManBase.h +++ b/include/utilities/realtime/dataman/DataManBase.h @@ -87,6 +87,8 @@ protected: virtual int put_next(const void *p_data, json p_jmsg); + std::shared_ptr<DataManBase> get_man(std::string method); + inline void logging(std::string p_msg, std::string p_man = "", std::ostream &out = std::cout) { @@ -262,32 +264,6 @@ protected: product(varshape, dsize(p_jmsg["dtype"].get<std::string>())); } - inline std::shared_ptr<DataManBase> get_man(std::string method) - { - std::string soname = "lib" + method + "man.so"; - void *so = NULL; - so = dlopen(soname.c_str(), RTLD_NOW); - if (so) - { - std::shared_ptr<DataManBase> (*func)() = NULL; - func = (std::shared_ptr<DataManBase>(*)())dlsym(so, "getMan"); - if (func) - { - return func(); - } - else - { - logging("getMan() not found in " + soname); - } - } - else - { - logging("Dynamic library " + soname + - " not found in LD_LIBRARY_PATH"); - } - return nullptr; - } - std::function<void(const void *, std::string, std::string, std::string, std::vector<size_t>)> m_callback; diff --git a/source/ADIOS.cpp b/source/ADIOS.cpp index b71368718..729e6c8ee 100644 --- a/source/ADIOS.cpp +++ b/source/ADIOS.cpp @@ -153,8 +153,8 @@ std::shared_ptr<Engine> ADIOS::Open(const std::string &name, method); #else throw std::invalid_argument( - "ERROR: this version didn't compile with " - "Dataman library, can't Open DataManWriter\n"); + "ERROR: this version didn't compile with " + "Dataman library, can't Open DataManWriter\n"); #endif } else if (type == "DataManReader") @@ -164,8 +164,8 @@ std::shared_ptr<Engine> ADIOS::Open(const std::string &name, method); #else throw std::invalid_argument( - "ERROR: this version didn't compile with " - "Dataman library, can't Open DataManReader\n"); + "ERROR: this version didn't compile with " + "Dataman library, can't Open DataManReader\n"); #endif } else if (type == "ADIOS1Writer") diff --git a/source/engine/dataman/DataManReader.cpp b/source/engine/dataman/DataManReader.cpp index 4b383491c..4ad22bcb8 100644 --- a/source/engine/dataman/DataManReader.cpp +++ b/source/engine/dataman/DataManReader.cpp @@ -20,8 +20,6 @@ #include "transport/file/FilePointer.h" // uses C FILE* #include "transport/wan/MdtmMan.h" //uses Mdtm library -#include "DataMan.h" //here comes your DataMan header from external dataman library - namespace adios { @@ -35,8 +33,6 @@ DataManReader::DataManReader(ADIOS &adios, const std::string &name, Init(); } -DataManReader::~DataManReader() {} - void DataManReader::SetCallBack( std::function<void(const void *, std::string, std::string, std::string, Dims)> diff --git a/source/engine/dataman/DataManWriter.cpp b/source/engine/dataman/DataManWriter.cpp index 3810d3f0b..7e438b535 100644 --- a/source/engine/dataman/DataManWriter.cpp +++ b/source/engine/dataman/DataManWriter.cpp @@ -32,8 +32,6 @@ DataManWriter::DataManWriter(ADIOS &adios, const std::string name, Init(); } -DataManWriter::~DataManWriter() {} - void DataManWriter::SetCallBack( std::function<void(const void *, std::string, std::string, std::string, Dims)> diff --git a/source/transport/wan/MdtmMan.cpp b/source/transport/wan/MdtmMan.cpp index cdece2ecb..010a8c574 100644 --- a/source/transport/wan/MdtmMan.cpp +++ b/source/transport/wan/MdtmMan.cpp @@ -22,13 +22,11 @@ MdtmMan::MdtmMan(const std::string localIP, const std::string remoteIP, const bool debugMode) : Transport("File", mpiComm, debugMode), m_LocalIP{localIP}, m_RemoteIP{remoteIP}, m_Mode{mode}, m_Prefix{prefix}, - m_NumberOfPipes{numberOfPipes}, m_Tolerances{tolerances}, - m_Priorities{priorities} + m_NumberOfPipes{numberOfPipes}, m_Tolerances{tolerances}, m_Priorities{ + priorities} { } -MdtmMan::~MdtmMan() {} - void MdtmMan::Open(const std::string name, const std::string accessMode) {} void MdtmMan::SetBuffer(char *buffer, std::size_t size) {} diff --git a/source/utilities/realtime/dataman/DataManBase.cpp b/source/utilities/realtime/dataman/DataManBase.cpp index b4d6c3a4b..8fdf8cedd 100644 --- a/source/utilities/realtime/dataman/DataManBase.cpp +++ b/source/utilities/realtime/dataman/DataManBase.cpp @@ -221,6 +221,44 @@ int DataManBase::put_next(const void *p_data, json p_jmsg) return 0; } +std::shared_ptr<DataManBase> DataManBase::get_man(std::string method) +{ + void *so = NULL; +#ifdef __APPLE__ + std::string dylibname = "lib" + method + "man.dylib"; + so = dlopen(dylibname.c_str(), RTLD_NOW); + if (so) + { + std::shared_ptr<DataManBase> (*func)() = NULL; + func = (std::shared_ptr<DataManBase>(*)())dlsym(so, "getMan"); + if (func) + { + return func(); + } + } +#endif + std::string soname = "lib" + method + "man.so"; + so = dlopen(soname.c_str(), RTLD_NOW); + if (so) + { + std::shared_ptr<DataManBase> (*func)() = NULL; + func = (std::shared_ptr<DataManBase>(*)())dlsym(so, "getMan"); + if (func) + { + return func(); + } + else + { + logging("getMan() not found in " + soname); + } + } + else + { + logging("Dynamic library " + soname + " not found in LD_LIBRARY_PATH"); + } + return nullptr; +} + // end namespace realtime } // end namespace adios -- GitLab