Skip to content
Snippets Groups Projects
Commit e8a8967e authored by pnorbert's avatar pnorbert Committed by williamfgc
Browse files

Williamfgc refactor (#4)

* fix more example code

* make Open explicit in ADIOS1 toolkit. Fix handling open mode

* fix OpenModeToString() to serve adios 1 API's needs as well
parent 735faa2a
No related branches found
No related tags found
1 merge request!124Refactor
...@@ -25,7 +25,7 @@ namespace adios ...@@ -25,7 +25,7 @@ namespace adios
ADIOS1Writer::ADIOS1Writer(IO &io, const std::string &name, ADIOS1Writer::ADIOS1Writer(IO &io, const std::string &name,
const OpenMode openMode, MPI_Comm mpiComm) const OpenMode openMode, MPI_Comm mpiComm)
: Engine("ADIOS1Writer", io, name, openMode, mpiComm), : Engine("ADIOS1Writer", io, name, openMode, mpiComm),
m_ADIOS1(io.m_Name, name, openMode, mpiComm, io.m_DebugMode) m_ADIOS1(io.m_Name, name, mpiComm, io.m_DebugMode)
{ {
m_EndMessage = " in call to ADIOS1Writer " + m_Name + " Open\n"; m_EndMessage = " in call to ADIOS1Writer " + m_Name + " Open\n";
Init(); Init();
...@@ -35,7 +35,7 @@ void ADIOS1Writer::Init() ...@@ -35,7 +35,7 @@ void ADIOS1Writer::Init()
{ {
InitParameters(); InitParameters();
InitTransports(); InitTransports();
m_ADIOS1.Open(); m_ADIOS1.Open(m_OpenMode);
} }
#define declare_type(T) \ #define declare_type(T) \
......
...@@ -171,21 +171,43 @@ size_t BytesFactor(const std::string units, const bool debugMode) ...@@ -171,21 +171,43 @@ size_t BytesFactor(const std::string units, const bool debugMode)
return factor; return factor;
} }
std::string OpenModeToString(const OpenMode openMode) noexcept std::string OpenModeToString(const OpenMode openMode,
const bool oneLetter) noexcept
{ {
std::string openModeString; std::string openModeString;
if (openMode == OpenMode::Write) if (openMode == OpenMode::Write)
{ {
openModeString = "Write"; if (oneLetter)
{
openModeString = "w";
}
else
{
openModeString = "Write";
}
} }
else if (openMode == OpenMode::Append) else if (openMode == OpenMode::Append)
{ {
openModeString = "Append"; if (oneLetter)
{
openModeString = "a";
}
else
{
openModeString = "Append";
}
} }
else if (openMode == OpenMode::Read) else if (openMode == OpenMode::Read)
{ {
openModeString = "Read"; if (oneLetter)
{
openModeString = "r";
}
else
{
openModeString = "Read";
}
} }
return openModeString; return openModeString;
} }
......
...@@ -102,9 +102,11 @@ size_t BytesFactor(const std::string units, const bool debugMode); ...@@ -102,9 +102,11 @@ size_t BytesFactor(const std::string units, const bool debugMode);
/** /**
* Returns open mode as a string * Returns open mode as a string
* @param openMode from ADIOSTypes.h * @param openMode from ADIOSTypes.h
* @return * @param oneLetter if true returns a one letter version ("w", "a" or "r")
* @return string with open mode
*/ */
std::string OpenModeToString(const OpenMode openMode) noexcept; std::string OpenModeToString(const OpenMode openMode,
const bool oneLetter = false) noexcept;
} }
#include "adiosType.inl" #include "adiosType.inl"
......
...@@ -24,10 +24,9 @@ namespace interop ...@@ -24,10 +24,9 @@ namespace interop
{ {
ADIOS1Common::ADIOS1Common(const std::string &groupName, ADIOS1Common::ADIOS1Common(const std::string &groupName,
const std::string &fileName, const OpenMode openMode, const std::string &fileName, MPI_Comm mpiComm,
MPI_Comm mpiComm, const bool debugMode) const bool debugMode)
: m_GroupName(groupName), m_FileName(fileName), : m_GroupName(groupName), m_FileName(fileName), m_MPIComm(mpiComm),
m_OpenModeString(OpenModeToString(openMode)), m_MPIComm(mpiComm),
m_DebugMode(debugMode) m_DebugMode(debugMode)
{ {
Init(); Init();
...@@ -126,10 +125,10 @@ void ADIOS1Common::InitTransports( ...@@ -126,10 +125,10 @@ void ADIOS1Common::InitTransports(
} }
} }
bool ADIOS1Common::Open() bool ADIOS1Common::Open(const OpenMode openMode)
{ {
adios_open(&m_ADIOSFile, m_GroupName.c_str(), m_FileName.c_str(), adios_open(&m_ADIOSFile, m_GroupName.c_str(), m_FileName.c_str(),
m_OpenModeString.c_str(), m_MPIComm); OpenModeToString(openMode, true).c_str(), m_MPIComm);
if (adios_errno == err_no_error) if (adios_errno == err_no_error)
{ {
m_IsFileOpen = true; m_IsFileOpen = true;
......
...@@ -53,14 +53,13 @@ public: ...@@ -53,14 +53,13 @@ public:
ADIOS_ERRCODES m_ErrorNumber = static_cast<ADIOS_ERRCODES>(-1); ADIOS_ERRCODES m_ErrorNumber = static_cast<ADIOS_ERRCODES>(-1);
ADIOS1Common(const std::string &groupName, const std::string &fileName, ADIOS1Common(const std::string &groupName, const std::string &fileName,
const OpenMode openMode, MPI_Comm mpiComm, MPI_Comm mpiComm, const bool debugMode);
const bool debugMode);
~ADIOS1Common(); ~ADIOS1Common();
void InitParameters(const Params &parameters); void InitParameters(const Params &parameters);
void InitTransports(const std::vector<Params> &transportsParameters); void InitTransports(const std::vector<Params> &transportsParameters);
bool Open(); // return true if file is opened bool Open(const OpenMode openMode); // return true if file is opened
bool ReOpenAsNeeded(); // return true if file is open or reopened bool ReOpenAsNeeded(); // return true if file is open or reopened
template <class T> template <class T>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment