]> WPIA git - cassiopeia.git/blob - src/util.h
766f7ca3f117aecc447044e8e0d32a5745f5e746
[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();