From 3368696b95fd418acfbfd9fd58ce1f5a8a17f064 Mon Sep 17 00:00:00 2001 From: Jason Wang <wangr1@ornl.gov> Date: Wed, 20 Sep 2017 16:27:14 -0400 Subject: [PATCH] fixed a few error handling and solved the Windows build error --- source/adios2/ADIOSConfig.h.in | 3 --- source/adios2/CMakeLists.txt | 8 +++----- source/adios2/toolkit/transport/wan/WANZmq.cpp | 11 ++++++++++- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/source/adios2/ADIOSConfig.h.in b/source/adios2/ADIOSConfig.h.in index 9a2570846..b993cbaa4 100644 --- a/source/adios2/ADIOSConfig.h.in +++ b/source/adios2/ADIOSConfig.h.in @@ -42,9 +42,6 @@ /* CMake Option: ADIOS_USE_ZeroMQ=ON */ #cmakedefine ADIOS2_HAVE_ZEROMQ -/* CMake Option: ADIOS_USE_DataMan=ON */ -#cmakedefine ADIOS2_HAVE_DATAMAN - /* CMake Option: ADIOS_USE_SysVShMem=ON */ #cmakedefine ADIOS2_HAVE_SYSVSHMEM diff --git a/source/adios2/CMakeLists.txt b/source/adios2/CMakeLists.txt index 8115d1ead..7c7fde182 100644 --- a/source/adios2/CMakeLists.txt +++ b/source/adios2/CMakeLists.txt @@ -74,13 +74,11 @@ if(ADIOS2_HAVE_ZeroMQ) target_link_libraries(adios2 PRIVATE ZeroMQ::ZMQ) endif() -if(ADIOS2_HAVE_DataMan) - target_sources(adios2 PRIVATE +target_sources(adios2 PRIVATE engine/dataman/DataManReader.cpp engine/dataman/DataManWriter.cpp - ) - target_link_libraries(adios2 PRIVATE NLohmannJson) -endif() +) +target_link_libraries(adios2 PRIVATE NLohmannJson) if(ADIOS2_HAVE_BZip2) diff --git a/source/adios2/toolkit/transport/wan/WANZmq.cpp b/source/adios2/toolkit/transport/wan/WANZmq.cpp index 9b4d38fa5..9d9e36441 100644 --- a/source/adios2/toolkit/transport/wan/WANZmq.cpp +++ b/source/adios2/toolkit/transport/wan/WANZmq.cpp @@ -24,6 +24,10 @@ WANZmq::WANZmq(const std::string ipAddress, const std::string port, m_Port(port) { m_Context = zmq_ctx_new(); + if (m_Context == nullptr || m_Context == NULL) + { + throw std::runtime_error("ERROR: Creating ZeroMQ context failed"); + } if (m_DebugMode) { // TODO verify port is unsigned int @@ -57,6 +61,11 @@ void WANZmq::Open(const std::string &name, const OpenMode openMode) m_Socket = zmq_socket(m_Context, ZMQ_REQ); const std::string fullIP("tcp://" + m_IPAddress + ":" + m_Port); int err = zmq_connect(m_Socket, fullIP.c_str()); + if (err) + { + throw std::runtime_error("ERROR: zmq_connect() failed with " + + std::to_string(err)); + } if (m_Profiler.IsActive) { @@ -93,7 +102,7 @@ void WANZmq::Open(const std::string &name, const OpenMode openMode) if (m_DebugMode) { - if (m_Socket == NULL) // something goes wrong + if (m_Socket == nullptr || m_Socket == NULL) // something goes wrong { throw std::ios_base::failure( "ERROR: couldn't open socket for address " + m_Name + -- GitLab