YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
utility.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6#ifndef YARP_MANAGER_UTILITY
7#define YARP_MANAGER_UTILITY
8
9#include <algorithm>
10#include <cctype>
11#include <string>
12#include <vector>
13#include <cstring>
14#include <iostream>
15#include <sstream>
16#include <chrono>
17#include <iomanip>
18
20
21namespace yarp::manager {
22
23
25{
26public:
28 StrStream(const std::string str);
30 std::string str();
32 StrStream& operator<<(const std::string &str);
33 StrStream& operator<<(int n);
34 StrStream& operator<<(double n);
35 StrStream& operator = (const char* sz);
36 StrStream& operator = (char* sz);
37 StrStream& operator = (const std::string &str);
39 StrStream& operator = (int n);
40 friend std::ostream& operator << (std::ostream &os , StrStream& sstr);
41
42private:
43 std::string dummyStr;
44};
45
46
47#if defined(_MSC_VER) && (_MSC_VER == 1600)
49#else
50 typedef std::stringstream OSTRINGSTREAM;
51#endif
52
53
58{
59public:
60 static ErrorLogger* Instance();
61
62 void addWarning(const char* szWarning);
63 void addWarning(const std::string &str);
64 void addWarning(OSTRINGSTREAM &stream);
65 void addError(const char* szError);
66 void addError(const std::string &str);
67 void addError(OSTRINGSTREAM &stream);
68 const char* getLastError();
69 const char* getLastWarning();
70 const char* getFormatedErrorString();
71 const char* getFormatedWarningString();
72 void clear();
73 int errorCount();
74 int warningCount();
75
76private:
77 ErrorLogger(){}
78 ErrorLogger(ErrorLogger const&){}
79 std::vector<std::string> errors;
80 std::vector<std::string> warnings;
81};
82
87public:
89 static ClockStart instance;
90 return instance;
91 }
92
93 ClockStart(const ClockStart&) = delete;
94 ClockStart& operator=(const ClockStart&) = delete;
95
100 std::string getStartTime() const {
101 std::ostringstream oss;
102 oss << std::put_time(&startTimeStruct, "%H:%M:%S");
103 return oss.str();
104 }
105
110 void setStartTime(std::string startTimeStr) {
111 std::istringstream iss(startTimeStr);
112 std::tm tm = {};
113 if (iss >> std::get_time(&tm, "%H:%M:%S")) {
114 startTimeStruct = tm;
115 }
116 }
117
118private:
119 std::chrono::system_clock::time_point startTime;
120 std::tm startTimeStruct;
121
126 ClockStart() {
127 startTime = std::chrono::system_clock::now();
128 std::time_t startTimeT = std::chrono::system_clock::to_time_t(startTime);
129
130#ifdef _WIN32
131 localtime_s(&startTimeStruct, &startTimeT);
132#else
133 localtime_r(&startTimeT, &startTimeStruct);
134#endif
135 }
136};
137
138
139bool compareString(const char* szFirst, const char* szSecond);
140std::string getCurrentTimeString();
141std::string getElapsedTimeString(const std::string& startTimeStr);
142void trimString(std::string& str);
143OS strToOS(const char* szOS);
144
145class Graph;
146bool exportDotGraph(Graph& graph, const char* szFileName);
147
148} // namespace yarp::manager
149
150
151#endif // __YARP_MANAGER_UTILITY__
Singleton class For storing execution start time.
Definition utility.h:86
void setStartTime(std::string startTimeStr)
Set the starting time from a string in HH:MM:SS format.
Definition utility.h:110
ClockStart(const ClockStart &)=delete
ClockStart & operator=(const ClockStart &)=delete
static ClockStart & getInstance()
Definition utility.h:88
std::string getStartTime() const
Get the starting time as a string in HH:MM:SS format.
Definition utility.h:100
Singleton class ErrorLogger.
Definition utility.h:58
const char * getLastError()
Definition utility.cpp:148
const char * getFormatedErrorString()
Definition utility.cpp:158
void addError(const char *szError)
Definition utility.cpp:126
void addWarning(const char *szWarning)
Definition utility.cpp:104
static ErrorLogger * Instance()
Singleton class ErrorLogger.
Definition utility.cpp:98
const char * getLastWarning()
Definition utility.cpp:167
const char * getFormatedWarningString()
Definition utility.cpp:177
StrStream & operator=(const char *sz)
Definition utility.cpp:58
friend std::ostream & operator<<(std::ostream &os, StrStream &sstr)
Definition utility.cpp:85
bool compareString(const char *szFirst, const char *szSecond)
Definition utility.cpp:326
void trimString(std::string &str)
Definition utility.cpp:403
std::stringstream OSTRINGSTREAM
Definition utility.h:50
OS strToOS(const char *szOS)
Definition utility.cpp:308
std::string getElapsedTimeString(const std::string &startTimeStr)
Definition utility.cpp:362
bool exportDotGraph(Graph &graph, const char *szFileName)
Definition utility.cpp:419
std::string getCurrentTimeString()
Definition utility.cpp:347
enum yarp::manager::__OS OS