]> WPIA git - cassiopeia.git/blob - src/util.h
529820adab8d0106047e8a17acb98ad886a31c05
[cassiopeia.git] / src / util.h
1 #pragma once
2
3 #include <string>
4 #include <ctime>
5 #include <memory>
6
7 void writeFile( const std::string& name, const std::string& content );
8 std::string readFile( const std::string& name );
9
10 std::string writeBackFile( const std::string& serial, const std::string& cert, const std::string& keydir );
11
12 std::pair<bool, std::time_t> parseDate( const std::string& date );
13 std::pair<bool, std::time_t> parseMonthInterval( std::time_t t, const std::string& date );
14 std::pair<bool, std::time_t> parseYearInterval( std::time_t t, const std::string& date );
15
16 std::unique_ptr<std::ofstream> openLogfile( const std::string &name );
17
18 #if __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ > 8)
19 #else
20 namespace std{
21 template<typename T, typename... Args>
22 std::unique_ptr<T> make_unique( Args&&... args ) {
23     return std::unique_ptr<T>( new T( std::forward<Args>(args)... ));
24 }
25 }
26 #endif
27
28 std::string timestamp();