HIPO4 C++ Library 4.4.1
Columnar I/O library for CLAS12 physics data
Loading...
Searching...
No Matches
utils.h
Go to the documentation of this file.
1/*
2 * To change this license header, choose License Headers in Project Properties.
3 * To change this template file, choose Tools | Templates
4 * and open the template in the editor.
5 */
6
7/*
8 * File: utils.h
9 * Author: gavalian
10 *
11 * Created on April 27, 2017, 10:01 AM
12 */
13
14#ifndef UTILS_H
15#define UTILS_H
16
17#include <iostream>
18#include <cstdlib>
19#include <cstdio>
20#include <string>
21#include <vector>
22#include<chrono>
23
24namespace hipo {
25
26 class utils {
27 private:
28
29 public:
30 utils();
31 ~utils();
32 static void tokenize(const std::string& str,
33 std::vector<std::string>& tokens,
34 const std::string& delimiters = " ");
35
36 static std::string substring(const std::string &str,
37 const char *start_delim,
38 const char *end_delim, int order);
39
40 static int findposition(const std::string &str,
41 const char *delim, int order);
42
43 static std::string& ltrim(std::string& str, const std::string& chars = "\t\n\v\f\r "){
44 str.erase(0, str.find_first_not_of(chars));return str;
45 }
46 static std::string& rtrim(std::string& str, const std::string& chars = "\t\n\v\f\r "){
47 str.erase(str.find_last_not_of(chars) + 1);return str;
48 }
49 static std::string& trim(std::string& str, const std::string& chars = "\t\n\v\f\r "){
50 return ltrim(rtrim(str, chars), chars);
51 }
52
53 static void printLogo();
54
55 static std::string getHeader();
56 static std::string getFileHeader();
57 static std::string getFileTrailer(const char *code);
58 static std::string getSConstruct();
59
60 static void writeInt( char *buffer, int position, int value);
61 static void writeLong( char *buffer, int position, long value);
62 static void writeByte( char *buffer, int position, uint8_t value );
63 };
64
65 class benchmark {
66 private:
67
68 std::chrono::high_resolution_clock clock;
69 std::chrono::time_point<std::chrono::high_resolution_clock> first, second;
70 std::string benchmarkName;
71
72 long running_time;
73 int counter;
74 int printoutFrequency;
75
76 public:
77
78 benchmark(const char *name){
79 benchmarkName = name;
80 running_time = 0;counter = 0; printoutFrequency = -1;
81 }
82
83 benchmark(){ running_time = 0;counter = 0; printoutFrequency = -1;}
84 benchmark(int freq){ running_time = 0;counter = 0; printoutFrequency = freq;}
86
87 void reset(){ running_time = 0;counter = 0; printoutFrequency = -1;}
88 void setName(const char *name){ benchmarkName = name;}
89 void resume();
90 void pause();
91 long getTime();
92 double getTimeSec();
93 int getCounter();
94 void show();
95 };
96}
97
98#endif /* UTILS_H */
Definition utils.h:65
benchmark(const char *name)
Definition utils.h:78
int getCounter()
Definition utils.cpp:220
void resume()
Definition utils.cpp:193
void setName(const char *name)
Definition utils.h:88
void pause()
Definition utils.cpp:203
benchmark(int freq)
Definition utils.h:84
double getTimeSec()
Definition utils.cpp:216
void show()
Definition utils.cpp:199
benchmark()
Definition utils.h:83
~benchmark()
Definition utils.h:85
void reset()
Definition utils.h:87
long getTime()
Definition utils.cpp:212
Definition utils.h:26
static std::string getFileHeader()
Definition utils.cpp:110
static std::string & rtrim(std::string &str, const std::string &chars="\t\n\v\f\r ")
Definition utils.h:46
static void writeByte(char *buffer, int position, uint8_t value)
Definition utils.cpp:76
static std::string substring(const std::string &str, const char *start_delim, const char *end_delim, int order)
returns a substring from a string that is enclosed between start_delim and end_delim.
Definition utils.cpp:56
static std::string getSConstruct()
Definition utils.cpp:145
static std::string & trim(std::string &str, const std::string &chars="\t\n\v\f\r ")
Definition utils.h:49
static void writeLong(char *buffer, int position, long value)
Definition utils.cpp:71
utils()
Definition utils.cpp:12
static std::string getFileTrailer(const char *code)
Definition utils.cpp:126
static std::string & ltrim(std::string &str, const std::string &chars="\t\n\v\f\r ")
Definition utils.h:43
static std::string getHeader()
Definition utils.cpp:91
static void tokenize(const std::string &str, std::vector< std::string > &tokens, const std::string &delimiters=" ")
Definition utils.cpp:15
static void printLogo()
Definition utils.cpp:81
static int findposition(const std::string &str, const char *delim, int order)
finds postion of the dalim in the string, while skipping "order" times.
Definition utils.cpp:37
static void writeInt(char *buffer, int position, int value)
Definition utils.cpp:66
~utils()
Definition utils.cpp:13
HIPO namespace is used for the classes that read/write files and records.
Definition bank.cpp:45