diff --git a/source/adios2/engine/dataman/DataManWriter.h b/source/adios2/engine/dataman/DataManWriter.h index 5f67a4bb1f111bcaf13783fa7f90ca15884fe090..2a401155bae08780e300ae416549ebda71f6be00 100644 --- a/source/adios2/engine/dataman/DataManWriter.h +++ b/source/adios2/engine/dataman/DataManWriter.h @@ -33,6 +33,7 @@ public: void Close(const int transportIndex = -1) final; private: + std::string m_UseFormat = "json"; bool m_DoRealTime = false; bool m_DoMonitor = false; transportman::DataMan m_Man; diff --git a/source/adios2/engine/dataman/DataManWriter.tcc b/source/adios2/engine/dataman/DataManWriter.tcc index a85f949febd4ac932020df7fb93a935b1b69ec42..1e536aa0e7d4a9e251ee39ad9fc6f55c7f6a7ac5 100644 --- a/source/adios2/engine/dataman/DataManWriter.tcc +++ b/source/adios2/engine/dataman/DataManWriter.tcc @@ -22,13 +22,8 @@ namespace adios2 template <class T> void DataManWriter::PutSyncCommon(Variable<T> &variable, const T *values) { - // here comes your magic at Writing now variable.m_UserValues has the - // data - // passed by the user - // set variable - variable.SetData(values); - // This part will go away, this is just to monitor variables per rank + variable.SetData(values); if (variable.m_Shape.empty()) { @@ -43,19 +38,28 @@ void DataManWriter::PutSyncCommon(Variable<T> &variable, const T *values) variable.m_Start.assign(variable.m_Count.size(), 0); } - nlohmann::json jmsg; - jmsg["doid"] = m_Name; - jmsg["var"] = variable.m_Name; - jmsg["dtype"] = GetType<T>(); - jmsg["putshape"] = variable.m_Count; - jmsg["varshape"] = variable.m_Shape; - jmsg["offset"] = variable.m_Start; - jmsg["timestep"] = 0; - jmsg["bytes"] = - std::accumulate(variable.m_Shape.begin(), variable.m_Shape.end(), - sizeof(T), std::multiplies<size_t>()); - - m_Man.WriteWAN(values, jmsg); + if(m_UseFormat == "json"){ + + nlohmann::json jmsg; + jmsg["doid"] = m_Name; + jmsg["var"] = variable.m_Name; + jmsg["dtype"] = GetType<T>(); + jmsg["putshape"] = variable.m_Count; + jmsg["varshape"] = variable.m_Shape; + jmsg["offset"] = variable.m_Start; + jmsg["timestep"] = 0; + jmsg["bytes"] = + std::accumulate(variable.m_Shape.begin(), variable.m_Shape.end(), + sizeof(T), std::multiplies<size_t>()); + + m_Man.WriteWAN(values, jmsg); + } + + if(m_UseFormat == "bp"){ + + // add bp serialization + + } if (m_DoMonitor) {