Skip to content
Snippets Groups Projects
ADIOS.cpp 1.53 KiB
Newer Older
wfg's avatar
wfg committed
/*
wfg's avatar
wfg committed
 * ADIOS.cpp
wfg's avatar
wfg committed
 *
 *  Created on: Sep 29, 2016
 *      Author: William F Godoy
 *
 */

#include <fstream>
wfg's avatar
wfg committed
#include <iostream>
wfg's avatar
wfg committed
#include "ADIOS.h"
wfg's avatar
wfg committed


namespace adios
{

//here assign default values of non-primitives
wfg's avatar
wfg committed
ADIOS::ADIOS( )
wfg's avatar
wfg committed
{ }


wfg's avatar
wfg committed
ADIOS::ADIOS( const std::string xmlConfigFile ):
    m_XMLConfigFile{ xmlConfigFile }
wfg's avatar
wfg committed
{ }


wfg's avatar
wfg committed
//#ifdef USE_MPI
ADIOS::ADIOS( const std::string xmlConfigFile, const MPI_Comm& mpiComm  ):
    m_XMLConfigFile{ xmlConfigFile },
    m_IsUsingMPI{ true },
	m_MPIComm{ mpiComm }
wfg's avatar
wfg committed
{ }
wfg's avatar
wfg committed
//#endif
wfg's avatar
wfg committed


wfg's avatar
wfg committed
void ADIOS::Init( )
wfg's avatar
wfg committed
    if( m_IsUsingMPI == false && m_XMLConfigFile.empty() == false )
wfg's avatar
wfg committed
        InitNoMPI( );
wfg's avatar
wfg committed
        //#ifdef USE_MPI
wfg's avatar
wfg committed
        //#endif
wfg's avatar
wfg committed
void ADIOS::InitNoMPI( )
wfg's avatar
wfg committed
//#ifdef USE_MPI
void ADIOS::InitMPI( )
wfg's avatar
wfg committed
    //here just say hello from MPI processes

    int size;
    MPI_Comm_size( *m_MPIComm, &size );

    int rank;
    MPI_Comm_rank( *m_MPIComm, &rank );
wfg's avatar
wfg committed
    std::cout << " Hello World from processor " << rank << "/" << size << "\n";
wfg's avatar
wfg committed
//#endif
wfg's avatar
wfg committed
void ADIOS::ReadXMLConfigFile( )
{
    std::ifstream xmlConfigStream( m_XMLConfigFile );

    if( xmlConfigStream.good() == false ) //check file
    {
        const std::string errorMessage( "XML Config file " + m_XMLConfigFile + " could not be opened. "
                                        "Check permissions or file existence\n");
        throw std::ios_base::failure( errorMessage );
    }
wfg's avatar
wfg committed
    //here fill SMetadata...
wfg's avatar
wfg committed
    xmlConfigStream.close();
wfg's avatar
wfg committed
} //end namespace
wfg's avatar
wfg committed