12#ifndef __GEDIM_IOUtilities_H
13#define __GEDIM_IOUtilities_H
15#include "Gedim_Macro.hpp"
16#include <unordered_set>
28#include <unordered_map>
68 std::vector<std::string> &
out,
74 std::vector<std::string> &
paths,
95 const bool &
append =
false);
100 const bool &
append =
false);
139 static std::string GetDateTime();
163 static std::map<std::string, double> times;
164 static std::map<std::string, double> localTimes;
165 static unsigned long totalAvailStartingMemory;
166 static int ParseLine(
char *
line);
Eigen column vector.
Definition Eigen_Array.hpp:23
Definition IOUtilities.hpp:137
static double GetFileSize(const std::string &nameFile)
Get the file size in MB.
Definition IOUtilities.cpp:766
static int LogMaxFileSize
Max file log size (MB)
Definition IOUtilities.hpp:143
static void CheckFileSize(const std::string &nameFile)
Check if file reach the maximum size and create new file.
Definition IOUtilities.cpp:779
static void PrintErrorMessage(const std::string &message, va_list args)
Definition IOUtilities.cpp:874
static void PrintInfoMessage(const std::string &message, va_list args)
Definition IOUtilities.cpp:879
static void PrintWarningMessage(const std::string &message, va_list args)
Definition IOUtilities.cpp:869
static void PrintDebugMessage(const std::string &message, va_list args)
Definition IOUtilities.cpp:884
static void PrintLine(const char &symbol=' ')
Definition IOUtilities.cpp:858
static int LogMaxNumFiles
Max number of backup log files to maintain.
Definition IOUtilities.hpp:144
static std::string LogFolder
Folder name where log files of the program are.
Definition IOUtilities.hpp:145
static std::string LogNameFile
File name of Log.
Definition IOUtilities.hpp:146
Class to print variables.
Definition IOUtilities.hpp:39
static void PrintDebugMessage(const std::string &message, const bool &onlyMaster,...)
Used to print to file, or on screen a debug message.
Definition IOUtilities.cpp:642
static void PrintWarningMessage(const std::string &message, const bool &onlyMaster,...)
Used to print to file, or on screen a warning message.
Definition IOUtilities.cpp:579
static std::string EndColor
Definition IOUtilities.hpp:53
static std::vector< std::string > StringSplit(const std::string &stringToSplit, const char character)
Split a std::string in more strings dived by character.
Definition IOUtilities.cpp:109
static void Assert(const bool &logicResult)
Assert for all code, generate exception if something goes wrong.
Definition IOUtilities.hpp:126
static void GetFilePath(const std::string &nameFilePath, std::string &filePath, std::string &fileName, std::string &fileExtension)
Get the path from a file path.
Definition IOUtilities.cpp:136
static void PrintGenericMessageOnLine(const std::string &message,...)
Used to print only on screen a generic message in the same line.
Definition IOUtilities.cpp:524
static void PrintSuccessMessage(const std::string &message, const bool &onlyMaster,...)
Used to print to file, or on screen a success message.
Definition IOUtilities.cpp:674
static std::string YellowColor
Definition IOUtilities.hpp:51
static void GetFileList(const std::string &mainDirectory, std::vector< std::string > &out, const FileFilter &filter=Output::FilesAndDirectories, const bool &hiddenElements=false)
Returns a list of files/directories in mainDirectory.
Definition IOUtilities.cpp:157
static bool ReadBinaryFile(const std::string &nameFile, std::vector< double > &dataToRead, const unsigned int &dataSizeToRead=0, const unsigned int &startingPosition=0)
static std::string MagentaColor
Definition IOUtilities.hpp:52
static void FindPaths(const std::string &mainDirectory, const std::string &objectNameToFind, std::vector< std::string > &paths, const FileFilter &filter=Output::FilesAndDirectories, const bool &hiddenElements=false)
Returns a list of paths containing the file/directory found in mainDirectory.
Definition IOUtilities.cpp:230
static void WriteBinaryFile(const std::string &nameFile, const void *dataToWrite, const unsigned int &sizeOfSingleDataToWrite, const unsigned int &dataSizeToWrite, const bool &append=false)
static std::string RedColor
Definition IOUtilities.hpp:49
static int MaxElementToPrint
Max elements to print in vectors.
Definition IOUtilities.hpp:55
static std::string BlueColor
Definition IOUtilities.hpp:48
static void PrintGenericMessage(const std::string &message, const bool &onlyMaster,...)
Used to print to file, or on screen a generic message.
Definition IOUtilities.cpp:609
static std::string GreenColor
Definition IOUtilities.hpp:50
static std::ostream & PrintStars(std::ostream &out)
Print a line of stars * in out.
Definition IOUtilities.cpp:474
static int StartingIndexToPrint
Starting index to print in vectors.
Definition IOUtilities.hpp:56
static void PrintErrorMessage(const std::string &message, const bool &onlyMaster,...)
Used to print to file, or on screen an error message.
Definition IOUtilities.cpp:549
static bool FileExists(const std::string &nameFile)
Check if a file exists.
Definition IOUtilities.cpp:121
FileFilter
Definition IOUtilities.hpp:42
@ FilesAndDirectories
Definition IOUtilities.hpp:43
@ Files
Definition IOUtilities.hpp:44
@ Directories
Definition IOUtilities.hpp:45
static void Assert(const bool &logicResult, const std::string &message,...)
Assert for all code, generate exception if something goes wrong with a message.
static void PrintStatusProgram(const std::string &programStep,...)
Used to print to file, or on screen the status of the program.
Definition IOUtilities.cpp:492
static std::ostream & PrintLines(std::ostream &out)
Print a line of lines - in out.
Definition IOUtilities.cpp:483
static bool WriteBinaryFile(const std::string &nameFile, const std::vector< double > &dataToWrite, const unsigned int &dataSizeToWrite=0, const unsigned int &dataStartingPositionToWrite=0, const bool &append=false)
static void PrintLine(char character=' ', bool onlyMaster=true)
Print a line of symbol.
Definition IOUtilities.cpp:453
static void GetBinaryFileSize(const std::string &nameFile, unsigned int &fileSize, const unsigned int &sizeOfSingleDataToWrite, const unsigned int &startingPosition=0)
Definition IOUtilities.cpp:279
static void CreateFolder(const std::string &nameFolder)
Creating Folders if not exists.
Definition IOUtilities.cpp:87
static void ReadBinaryFile(const std::string &nameFile, void *dataToRead, const unsigned int &sizeOfSingleDataToWrite, const unsigned int &dataSizeToRead, const unsigned int &startingPosition=0)
Definition IOUtilities.hpp:161
static double ComputeTime(const double &startTime, const double &stopTime)
Definition IOUtilities.hpp:176
static void Sleep(const unsigned int &milliseconds)
Sleep for n milliseconds.
Definition IOUtilities.cpp:928
static void GetProcessMemory(std::vector< unsigned long > &memoryUsed)
Get Current Virtual/Physical Memory used by process (KB)
Definition IOUtilities.cpp:1130
static void GetTotalMemory(std::vector< unsigned long > &totalMemory)
Get Total Physical Memory from file /proc/meminfo (KB)
Definition IOUtilities.cpp:1153
static double GetTime(const std::string &nameTime, const bool &localTime=false)
static std::string MemoryFile
File where memory profiling data are stored.
Definition IOUtilities.hpp:171
static std::string TimeFile
File where time profiling data are stored.
Definition IOUtilities.hpp:170
static double StopTime(const std::string &nameTime, const bool &printTime=true)
Stop time with nameTime if exists and print to file the result.
Definition IOUtilities.cpp:1014
static double GetTime()
Get time in ms.
Definition IOUtilities.cpp:919
static void CheckMemory(const std::string &nameMemory, const bool &checkProcessesMemory=false)
Compute the virtual memory used by the process.
Definition IOUtilities.cpp:1179
static void WriteTime(const std::string &nameTime, const double &globalTime, const double &localTime)
Definition IOUtilities.cpp:1056
static void InsertTime(const std::string &nameTime, const double &globalTime, const double &localTime)
Insert time with nameTime if not exist.
Definition IOUtilities.cpp:966
static void SplitTime(const std::string &nameTime, double &globalTime, double &localTime)
Split time with nameTime if exists and return the global time and local time.
Definition IOUtilities.cpp:982
static bool ActivateProfiler
Compute time for program profiling.
Definition IOUtilities.hpp:169
static void StartTime(const std::string &nameTime)
Start time with nameTime if not exist.
Definition IOUtilities.cpp:937
Definition Eigen_Array.cpp:22