From acc4a58232f1cb7783a7ee1648aa9f65c72ddafd Mon Sep 17 00:00:00 2001
From: wfg <wfg@mbpwfg.ornl.gov>
Date: Thu, 16 Feb 2017 16:09:27 -0500
Subject: [PATCH] Corrected sleep bug in DataMan.h

---
 include/engine/dataman/DataMan.h  |   2 +-
 include/engine/vis/Vis.h          |  96 ---------
 include/engine/vis/VisTemplates.h | 131 -------------
 src/engine/vis/Vis.cpp            | 312 ------------------------------
 4 files changed, 1 insertion(+), 540 deletions(-)
 delete mode 100644 include/engine/vis/Vis.h
 delete mode 100644 include/engine/vis/VisTemplates.h
 delete mode 100644 src/engine/vis/Vis.cpp

diff --git a/include/engine/dataman/DataMan.h b/include/engine/dataman/DataMan.h
index 348522ec3..10d13a120 100644
--- a/include/engine/dataman/DataMan.h
+++ b/include/engine/dataman/DataMan.h
@@ -105,7 +105,7 @@ private:
             }
             else
             {
-                sleep( 0.1 );
+                sleep( 1 );
             }
         }
         MPI_Barrier( m_MPIComm );
diff --git a/include/engine/vis/Vis.h b/include/engine/vis/Vis.h
deleted file mode 100644
index ecdc21688..000000000
--- a/include/engine/vis/Vis.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * DataMan.h
- *
- *  Created on: Jan 10, 2017
- *      Author: wfg
- */
-
-#ifndef VIS_H_
-#define VIS_H_
-
-
-#include "core/Engine.h"
-#include "capsule/Heap.h"
-#include "format/BP1Writer.h"
-
-
-namespace adios
-{
-namespace engine
-{
-
-
-class Vis : public Engine
-{
-
-public:
-
-    /**
-     * Constructor for single BP capsule engine, writes in BP format into a single heap capsule
-     * @param name unique name given to the engine
-     * @param accessMode "w" or "write", "r" or "read", "a" or "append"
-     * @param mpiComm communicator used for MPI operations
-     * @param method contains Engine metadata options provide by the user, Vis can make decisions based on these "knobs"
-     * @param debugMode true: handle exceptions, false: skip extra exceptions checks
-     * @param hostLanguage for Fortran users (due to array index), most of the time will be set with C++
-     */
-    Vis( const std::string name, const std::string accessMode, MPI_Comm mpiComm,
-         const Method& method, const bool debugMode = false, const unsigned int cores = 1,
-         const std::string hostLanguage = "C++" );
-
-    ~Vis( );
-
-    void Write( Group& group, const std::string variableName, const char* values );
-    void Write( Group& group, const std::string variableName, const unsigned char* values );
-    void Write( Group& group, const std::string variableName, const short* values );
-    void Write( Group& group, const std::string variableName, const unsigned short* values );
-    void Write( Group& group, const std::string variableName, const int* values );
-    void Write( Group& group, const std::string variableName, const unsigned int* values );
-    void Write( Group& group, const std::string variableName, const long int* values );
-    void Write( Group& group, const std::string variableName, const unsigned long int* values );
-    void Write( Group& group, const std::string variableName, const long long int* values );
-    void Write( Group& group, const std::string variableName, const unsigned long long int* values );
-    void Write( Group& group, const std::string variableName, const float* values );
-    void Write( Group& group, const std::string variableName, const double* values );
-    void Write( Group& group, const std::string variableName, const long double* values );
-
-    void Write( const std::string variableName, const char* values );
-    void Write( const std::string variableName, const unsigned char* values );
-    void Write( const std::string variableName, const short* values );
-    void Write( const std::string variableName, const unsigned short* values );
-    void Write( const std::string variableName, const int* values );
-    void Write( const std::string variableName, const unsigned int* values );
-    void Write( const std::string variableName, const long int* values );
-    void Write( const std::string variableName, const unsigned long int* values );
-    void Write( const std::string variableName, const long long int* values );
-    void Write( const std::string variableName, const unsigned long long int* values );
-    void Write( const std::string variableName, const float* values );
-    void Write( const std::string variableName, const double* values );
-    void Write( const std::string variableName, const long double* values );
-
-    void Close( const int transportID = -1 );
-
-private:
-
-    std::vector< std::shared_ptr<Capsule> > m_Capsules; ///< it can be any derived class from Capsule: Heap, Shmem, RDMA ?
-    std::size_t m_MaxBufferSize; ///< maximum buffer size
-    float m_GrowthFactor = 1.5; ///< buffer growth factor if using a Heap capsule. New_size = f * Previous_size
-
-    //optional if BP format is required
-    format::BP1Writer m_BP1Writer; ///< format object will provide the required BP functionality to be applied on m_Buffer and m_Transports
-    format::BP1MetadataSet m_MetadataSet; ///< metadata set accompanying the heap buffer data in bp format. Needed by m_BP1Writer
-
-    void Init( );  ///< calls InitTransports based on Method and can extend other Init functions, called from constructor
-    void InitTransports( ); ///< from Transports
-
-};
-
-
-} //end namespace engine
-} //end namespace adios
-
-
-
-
-
-#endif /* VIS_H_ */
diff --git a/include/engine/vis/VisTemplates.h b/include/engine/vis/VisTemplates.h
deleted file mode 100644
index 0450bed88..000000000
--- a/include/engine/vis/VisTemplates.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * DataManTemplates.h
- *
- *  Created on: Jan 18, 2017
- *      Author: wfg
- */
-
-#ifndef VISTEMPLATES_H_
-#define VISTEMPLATES_H_
-
-#include <vector>
-#include <iostream>
-
-
-#include "core/Group.h"
-#include "core/Variable.h"
-#include "capsule/Heap.h"
-#include "core/Transport.h"
-#include "format/BP1Writer.h"
-
-
-namespace adios
-{
-
-template<class T>
-void VisReadVariable( Transport& transport, const char* rawDataBuffer, const Var variableName )
-{
-    //Here make decisions on what to do with a certain variable in a rawDataBuffer (BP Format?)
-}
-
-
-template<class T>
-void VisReadVariables( Transport& transport, const char* rawDataBuffer, const std::vector<Var>& variableName )
-{
-    //Here make decisions on what to do with many variables in a rawDataBuffer (BP Format?)
-}
-
-template<class T>
-void VisReadAllVariables( Transport& transport, const char* rawDataBuffer )
-{
-    //Here make decisions on what to do with all variables in a rawDataBuffer (BP Format?)
-}
-
-
-
-/**
- *
- * @param group variable owner
- * @param variableName string type
- * @param variable
- * @param buffer heap buffer to writer variables to for disk I/O
- * @param transports
- * @param bp1Writer
- */
-template<class T>
-void VisWriteVariable( const Group& group, const Var variableName, Variable<T>& variable,
-                       std::vector< std::shared_ptr<Capsule> >& capsules,
-                       std::vector< std::shared_ptr<Transport> >& transports,
-                       format::BP1Writer& bp1Writer,
-                       const int rank )
-
-{
-    //here write your magic, this template replaces C MACROS in ADIOS 1.0
-    std::cout << "Hello from Vis engine, writing variable " << variableName << " of typeid(T).name() = " << typeid(T).name() << "\n";
-    if( variable.IsDimension )
-    {
-        std::cout << "Which is a dimension variable\n";
-    }
-
-    auto localDimensions = group.GetDimensions( variable.DimensionsCSV );
-    unsigned long long int totalDimensions = GetTotalSize( localDimensions );
-
-    std::cout << "Values: ";
-    for( unsigned int i = 0; i < totalDimensions; ++i )
-    {
-        std::cout << variable.Values[i] << " ";
-    }
-    std::cout << "\nfrom RANK = " << rank << "\n\n";
-
-
-    // This is just pseudo-code telling potential scenarios the engine can execute
-    //if( story = "simple task" )
-    //{
-             //Could be private functions
-//           RunSimpleTask( group, variableName, variable );  // e.g. Write to POSIX file
-//
-    //}
-//    else if( story == "simple task + VisIt" )
-//    {
-//            ///Could be private functions
-//         RunSimpleTask( group, variableName, variable );  // e.g. Write to POSIX file
-//         SendToVisIt( group, variableName, variable );
-//
-//
-//    }
-//    else if( story == "Send to Service Flow Velocity and Potential" )
-//    {
-
-
-//         if( m_IsPotentialWritten = true && m_IsVelocityWritten == true && m_IsSameGroup == true )
-//         {
-//              SendToService( );  will send a buffer
-//         }
-//         else
-//         {
-//              if( variableName == "velocity" )
-//              {
-//
-//                    WriteVariableToBuffer( group, variableName, variable, ... );  ///here
-//                    m_WrittenVariables.push_back( std::make_pair( group, variableName ) ); //  <Group*, variableName> keeps track of Written Variables
-//                    m_IsVelocityWritten = true;
-//              }
-//              else if( variableName == "potential" )
-//              {
-//                    WriteVariableToBuffer( group, variableName, variable, ... );  ///here
-//                    m_WrittenVariables.push_back( std::make_pair( group, variableName ) ); //  <Group*, variableName> keeps track of Written Variables
-//                    m_IsPotentialWritten = true;
-//              }
-//         }
-//
-//    }
-//
-//
-}
-
-
-} //end namespace
-
-
-
-#endif /* VISTEMPLATES_H_ */
diff --git a/src/engine/vis/Vis.cpp b/src/engine/vis/Vis.cpp
deleted file mode 100644
index 93bb598d1..000000000
--- a/src/engine/vis/Vis.cpp
+++ /dev/null
@@ -1,312 +0,0 @@
-/*
- * Vis.cpp
- *
- *  Created on: Jan 10, 2017
- *      Author: wfg
- */
-
-#include <iostream>
-
-
-#include "engine/vis/Vis.h"
-#include "engine/vis/VisTemplates.h"
-#include "core/Support.h"
-#include "functions/adiosFunctions.h" //CSVToVector
-
-//supported capsules
-#include "capsule/Heap.h"
-#include "capsule/ShmSystemV.h"
-
-//supported transports
-#include "transport/POSIX.h"
-#include "transport/FStream.h"
-#include "transport/File.h"
-
-
-namespace adios
-{
-namespace engine
-{
-
-Vis::Vis( const std::string streamName, const std::string accessMode, const MPI_Comm mpiComm,
-          const Method& method, const bool debugMode, const unsigned int cores,
-          const std::string hostLanguage ):
-    Engine( "Vis", streamName, accessMode, mpiComm, method, debugMode, cores,
-            " Vis constructor (or call to ADIOS Open).\n", hostLanguage )
-{
-    Init( );
-}
-
-
-Vis::~Vis( )
-{ }
-
-
-void Vis::Init( )
-{
-    InitTransports( );
-}
-
-
-void Vis::Write( Group& group, const std::string variableName, const char* values )
-{
-	auto index = PreSetVariable( group, variableName, " from call to Write char*" );
-	Variable<char>& variable = group.m_Char[index]; //must be a reference
-	variable.Values = values;
-	VisWriteVariable( group, variableName, variable, m_Capsules, m_Transports, m_BP1Writer, m_RankMPI );
-}
-
-
-void Vis::Write( Group& group, const std::string variableName, const unsigned char* values )
-{
-	auto index = PreSetVariable( group, variableName, " from call to Write unsigned char*" );
-	Variable<unsigned char>& variable = group.m_UChar[index]; //must be a reference
-    variable.Values = values;
-    VisWriteVariable( group, variableName, variable, m_Capsules, m_Transports, m_BP1Writer, m_RankMPI );
-}
-
-
-void Vis::Write( Group& group, const std::string variableName, const short* values )
-{
-	auto index = PreSetVariable( group, variableName, " from call to Write short*" );
-	Variable<short>& variable = group.m_Short[index]; //must be a reference
-    variable.Values = values;
-    VisWriteVariable( group, variableName, variable, m_Capsules, m_Transports, m_BP1Writer, m_RankMPI );
-}
-
-
-void Vis::Write( Group& group, const std::string variableName, const unsigned short* values )
-{
-	auto index = PreSetVariable( group, variableName, " from call to Write unsigned short*" );
-	Variable<unsigned short>& variable = group.m_UShort[index]; //must be a reference
-    variable.Values = values;
-    VisWriteVariable( group, variableName, variable, m_Capsules, m_Transports, m_BP1Writer, m_RankMPI );
-}
-
-
-void Vis::Write( Group& group, const std::string variableName, const int* values )
-{
-	auto index = PreSetVariable( group, variableName, " from call to Write int*" );
-	Variable<int>& variable = group.m_Int[index]; //must be a reference
-    variable.Values = values;
-    VisWriteVariable( group, variableName, variable, m_Capsules, m_Transports, m_BP1Writer, m_RankMPI );
-}
-
-
-void Vis::Write( Group& group, const std::string variableName, const unsigned int* values )
-{
-	auto index = PreSetVariable( group, variableName, " from call to Write unsigned int*" );
-	Variable<unsigned int>& variable = group.m_UInt[index]; //must be a reference
-    variable.Values = values;
-    VisWriteVariable( group, variableName, variable, m_Capsules, m_Transports, m_BP1Writer, m_RankMPI );
-}
-
-
-void Vis::Write( Group& group, const std::string variableName, const long int* values )
-{
-	auto index = PreSetVariable( group, variableName, " from call to Write long int*" );
-	Variable<long int>& variable = group.m_LInt[index]; //must be a reference
-    variable.Values = values;
-    VisWriteVariable( group, variableName, variable, m_Capsules, m_Transports, m_BP1Writer, m_RankMPI );
-}
-
-
-void Vis::Write( Group& group, const std::string variableName, const unsigned long int* values )
-{
-	auto index = PreSetVariable( group, variableName, " from call to Write unsigned long int*" );
-	Variable<unsigned long int>& variable = group.m_ULInt[index]; //must be a reference
-	variable.Values = values;
-	VisWriteVariable( group, variableName, variable, m_Capsules, m_Transports, m_BP1Writer, m_RankMPI );
-}
-
-
-void Vis::Write( Group& group, const std::string variableName, const long long int* values )
-{
-	auto index = PreSetVariable( group, variableName, " from call to Write long long int*" );
-	Variable<long long int>& variable = group.m_LLInt[index]; //must be a reference
-	variable.Values = values;
-	VisWriteVariable( group, variableName, variable, m_Capsules, m_Transports, m_BP1Writer, m_RankMPI );
-}
-
-
-void Vis::Write( Group& group, const std::string variableName, const unsigned long long int* values )
-{
-	auto index = PreSetVariable( group, variableName, " from call to Write unsigned long long int*" );
-	Variable<unsigned long long int>& variable = group.m_ULLInt[index]; //must be a reference
-	variable.Values = values;
-	VisWriteVariable( group, variableName, variable, m_Capsules, m_Transports, m_BP1Writer, m_RankMPI );
-}
-
-
-void Vis::Write( Group& group, const std::string variableName, const float* values )
-{
-	auto index = PreSetVariable( group, variableName, " from call to Write float*" );
-	Variable<float>& variable = group.m_Float[index]; //must be a reference
-	variable.Values = values;
-	VisWriteVariable( group, variableName, variable, m_Capsules, m_Transports, m_BP1Writer, m_RankMPI );
-}
-
-void Vis::Write( Group& group, const std::string variableName, const double* values )
-{
-	auto index = PreSetVariable( group, variableName, " from call to Write double*" );
-	Variable<double>& variable = group.m_Double[index]; //must be a reference
-	variable.Values = values;
-	VisWriteVariable( group, variableName, variable, m_Capsules, m_Transports, m_BP1Writer, m_RankMPI );
-}
-
-
-void Vis::Write( Group& group, const std::string variableName, const long double* values )
-{
-	auto index = PreSetVariable( group, variableName, " from call to Write long double*" );
-	Variable<long double>& variable = group.m_LDouble[index]; //must be a reference
-	variable.Values = values;
-	VisWriteVariable( group, variableName, variable, m_Capsules, m_Transports, m_BP1Writer, m_RankMPI );
-}
-
-//USING Preset Group
-void Vis::Write( const std::string variableName, const char* values )
-{
-	CheckDefaultGroup( );
-	Write( *m_Group, variableName, values );
-}
-
-void Vis::Write( const std::string variableName, const unsigned char* values )
-{
-	CheckDefaultGroup( );
-	Write( *m_Group, variableName, values );
-}
-
-void Vis::Write( const std::string variableName, const short* values )
-{
-	CheckDefaultGroup( );
-	Write( *m_Group, variableName, values );
-}
-
-void Vis::Write( const std::string variableName, const unsigned short* values )
-{
-	CheckDefaultGroup( );
-	Write( *m_Group, variableName, values );
-}
-
-void Vis::Write( const std::string variableName, const int* values )
-{
-	CheckDefaultGroup( );
-	Write( *m_Group, variableName, values );
-}
-
-void Vis::Write( const std::string variableName, const unsigned int* values )
-{
-	CheckDefaultGroup( );
-	Write( *m_Group, variableName, values );
-}
-
-void Vis::Write( const std::string variableName, const long int* values )
-{
-	CheckDefaultGroup( );
-	Write( *m_Group, variableName, values );
-}
-
-void Vis::Write( const std::string variableName, const unsigned long int* values )
-{
-	CheckDefaultGroup( );
-	Write( *m_Group, variableName, values );
-}
-
-void Vis::Write( const std::string variableName, const long long int* values )
-{
-	CheckDefaultGroup( );
-	Write( *m_Group, variableName, values );
-}
-
-void Vis::Write( const std::string variableName, const unsigned long long int* values )
-{
-	CheckDefaultGroup( );
-	Write( *m_Group, variableName, values );
-}
-
-void Vis::Write( const std::string variableName, const float* values )
-{
-	CheckDefaultGroup( );
-	Write( *m_Group, variableName, values );
-}
-
-void Vis::Write( const std::string variableName, const double* values )
-{
-	CheckDefaultGroup( );
-	Write( *m_Group, variableName, values );
-}
-
-void Vis::Write( const std::string variableName, const long double* values )
-{
-	CheckDefaultGroup( );
-	Write( *m_Group, variableName, values );
-}
-
-
-void Vis::InitTransports( ) //maybe move this?
-{
-    TransportNamesUniqueness( );
-
-    for( const auto& parameters : m_Method.m_TransportParameters )
-    {
-        auto itTransport = parameters.find( "transport" );
-
-        if( itTransport->second == "POSIX" )
-        {
-            m_Transports.push_back( std::make_shared<POSIX>( m_MPIComm, m_DebugMode ) );
-            m_Transports.back()->Open( m_Name, m_AccessMode );
-        }
-        else if( itTransport->second == "ShMem" )
-        {
-            //m_Transports.push_back( std::make_shared<ShMemTransport>( m_MPIComm, m_DebugMode ) );
-        }
-        else if( itTransport->second == "VisIt" )
-        {
-            //m_Transports.push_back( std::make_shared<SomeStagingTransport>( m_MPIComm, m_DebugMode ) ); //not yet supported
-            //
-        }
-        else
-        {
-            if( m_DebugMode == true )
-                throw std::invalid_argument( "ERROR: transport " + itTransport->second + " not supported, in " +
-                                              m_Name + m_EndMessage );
-        }
-    }
-}
-
-
-
-void Vis::Close( const int transportIndex )
-{
-     //do some preliminary work here
-    // (e.g. process metadata )
-    //flush the last piece of data or do more writes
-
-    if( transportIndex == -1 ) // all transports
-    {
-        for( auto& transport : m_Transports )
-            transport->Close( );
-    }
-    else
-    {
-        if( m_DebugMode == true )
-        {
-            if( transportIndex >= static_cast<int>( m_Transports.size() ) )
-                throw std::invalid_argument( "ERROR: transportIndex " + std::to_string( transportIndex ) + " is out of range\n" );
-        }
-
-        m_Transports[ transportIndex ]->Close( );
-    }
-
-    std::cout << "I own many Capsules (buffers: heap, shared memory, RDMA ) and \n"
-                 " many Transports ( POSIX, in-situ vis, staging, shared memory, RDMA )\n"
-                 " and I can do whatever I need to do with them\n";
-}
-
-
-
-} //end namespace engine
-} //end namespace adios
-
-
-
-- 
GitLab