FairRoot/PandaRoot
FileHandler.h
Go to the documentation of this file.
1 /*
2  * FileHandler.h
3  *
4  * Created on: Aug 15, 2013
5  * Author: roman
6  *
7  *
8  * Helper class to read text files to a stringstream, or
9  * cvs data to a vector< vector<double> >. Handles IO opperation,
10  * error handling etc.
11  *
12  */
13 
14 #ifndef FILEHANDLER_H_
15 #define FILEHANDLER_H_
16 
17 #include "icp/matrix.h"
18 
19 #include <boost/numeric/ublas/matrix.hpp>
20 #include <boost/regex.hpp>
21 #include <boost/thread.hpp>
22 
23 #include <vector>
24 #include <string>
25 #include <time.h>
26 
27 namespace Roman {
28 
29 class FileHandler {
30 
31 private:
32  static boost::mutex singleFileRead;
33  static boost::mutex singleFileWrite;
34 
35 public:
36 
37  static clock_t lastLoadBarTime;
39 
40  //is directory named already there? (BOOST)
41  static bool directoryExists(std::string name);
42 
43  //create (recursively, if necessary) directory (BOOST)
44  static bool mkdir(std::string name);
45 
46  //returns path of file
47  static std::string pwd(std::string file);
48 
49  //returns current working directory (cwd)
50  static std::string cwd();
51 
52  //recursively searches files by extension in curr_directory and adds to list
53  static int searchFiles(std::string curr_directory, std::string extension, std::vector<std::string>* list, bool includeSubDirs = true);
54 
55  //searches directories in curr_directory, adds to list
56  static int searchDirectories(std::string curr_directory, std::vector<std::string>* list, bool includeSubDirs = true);
57 
58  //reads file to stringstream
59  static int readFile(std::stringstream* ss, std::string filename, bool singleIOaccess = true);
60 
61  //reads file to vector<string>
62  static std::vector<std::string> readFile(std::string filename, bool singleIOaccess = true);
63 
64  //writes stringstream to file, REPLACING file
65  static bool writeFile(std::stringstream *ss , std::string filename, bool singleIOaccess = true);
66 
67  //appends stringstream to file, ADDING TO EXISTING file
68  static bool appendToFile(std::string content, std::string filename, bool singleIOaccess = true);
69 
70  //read selection of a list of directories, returns path chosen
71  static std::string selectDirectory(std::string sourceDirectory="", bool includeSubDirs = false);
72 
73 
74  static bool writeMatrix(Matrix &mat, std::string filename, std::stringstream* log = NULL, bool singleIOaccess = true);
75  static std::vector< std::vector<double> > readFromCSVfile(std::string filename, int maxLines=0, bool progressBar=false,bool singleIOaccess=true);
76  static Matrix readMatrix(std::string filename);
77  static std::vector<double > readFromCSVline(std::string line);
78  static void loadBar(int current, int total, int resolution, int width, std::string message="");
79  static int countLines(std::stringstream* ss);
80  static int countLinesOfFile(std::string filename);
81  static std::vector<std::string> findRegex(std::string source, std::string regex);
82 };
83 
84 } /* namespace Roman */
85 #endif /* FILEHANDLER_H_ */
static bool writeFile(std::stringstream *ss, std::string filename, bool singleIOaccess=true)
static void loadBar(int current, int total, int resolution, int width, std::string message="")
static int countLines(std::stringstream *ss)
TFile * file
static std::vector< std::vector< double > > readFromCSVfile(std::string filename, int maxLines=0, bool progressBar=false, bool singleIOaccess=true)
static std::string pwd(std::string file)
static int readFile(std::stringstream *ss, std::string filename, bool singleIOaccess=true)
friend F32vec4 log(const F32vec4 &a)
Definition: P4_F32vec4.h:110
static std::vector< std::string > findRegex(std::string source, std::string regex)
static std::string cwd()
TF1 * total
Definition: matrix.h:50
static clock_t lastLoadBarTime
Definition: FileHandler.h:37
TString name
static int countLinesOfFile(std::string filename)
static std::string selectDirectory(std::string sourceDirectory="", bool includeSubDirs=false)
static boost::mutex singleFileWrite
Definition: FileHandler.h:33
static int searchFiles(std::string curr_directory, std::string extension, std::vector< std::string > *list, bool includeSubDirs=true)
static bool directoryExists(std::string name)
static Matrix readMatrix(std::string filename)
static std::vector< double > readFromCSVline(std::string line)
static bool appendToFile(std::string content, std::string filename, bool singleIOaccess=true)
static bool mkdir(std::string name)
static int searchDirectories(std::string curr_directory, std::vector< std::string > *list, bool includeSubDirs=true)
static boost::mutex singleFileRead
Definition: FileHandler.h:32
static bool writeMatrix(Matrix &mat, std::string filename, std::stringstream *log=NULL, bool singleIOaccess=true)
static int lastLoadBarIteration
Definition: FileHandler.h:38
const string filename