Newer
Older
* Distributed under the OSI-approved Apache License, Version 2.0. See
* accompanying file Copyright.txt for details.
*
#include <chrono>
#include <thread>
void UserCallBack(const void *data, std::string doid, std::string var,
std::string dtype, std::vector<std::size_t> varshape)
std::cout << "data object ID = " << doid << "\n";
std::cout << "variable name = " << var << "\n";
std::cout << "data type = " << dtype << "\n";
std::size_t varsize = std::accumulate(varshape.begin(), varshape.end(), 1,
std::multiplies<std::size_t>());
for (unsigned int i = 0; i < varsize; ++i)
std::cout << ((float *)data)[i] << " ";
std::cout << std::endl;
adios2::IO &dataManIO = adios.DeclareIO("WAN");
dataManIO.SetParameters({{"real_time", "yes"},
{"method_type", "stream"},
{"method", "dump"}});
dataManIO.Open("myDoubles.bp", adios2::OpenMode::Read);
throw std::ios_base::failure(
"ERROR: failed to create DataMan I/O engine at Open\n");
dataManReader->SetCallBack(UserCallBack);
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
dataManReader->InquireVariable<double>("ioMyDoubles");
std::cout << "Variable ioMyDoubles not read...yet\n";
}
catch (std::invalid_argument &e)
{
std::cout << "Invalid argument exception, STOPPING PROGRAM\n";
std::cout << e.what() << "\n";
}
catch (std::ios_base::failure &e)
{
std::cout << "System exception, STOPPING PROGRAM\n";
std::cout << e.what() << "\n";
}
catch (std::exception &e)
{
std::cout << "Exception, STOPPING PROGRAM\n";
std::cout << e.what() << "\n";
}