X-Git-Url: http://git.vrable.net/?p=cumulus.git;a=blobdiff_plain;f=util.h;h=0d1b45d45e83983bf62194a5d631d3f41eeacb20;hp=c6c6f9e392cd888ffaf53c3868a2fdd7bfc8c183;hb=5d386960f207f991833f1204748bc4323934f761;hpb=adc96a88db941bd79f4be217ac29b2dee86f5ba7 diff --git a/util.h b/util.h index c6c6f9e..0d1b45d 100644 --- a/util.h +++ b/util.h @@ -36,4 +36,25 @@ void cloexec(int fd); void fatal(std::string msg) __attribute__((noreturn)); +/* Date/time string formatting and parsing utility functions. All data and + * methods are static, so this class should not be instantiated. */ +class TimeFormat { +public: + // Abbreviated time format encoded in snapshot file names. + static const char FORMAT_FILENAME[]; + // A timestamp, in UTC, written out in an ISO 8601 format (compatible with + // the SQLite datetime function). + static const char FORMAT_ISO8601[]; + // Similar to the above, but including a timezone offset. + static const char FORMAT_LOCALTIME[]; + + static std::string format(time_t timestamp, const char *format, bool utc); + + static std::string isoformat(time_t timestamp) + { return format(timestamp, FORMAT_ISO8601, true); } + +private: + TimeFormat() { } +}; + #endif // _LBS_TARSTORE_H