-/* Cumulus: Smart Filesystem Backup to Dumb Servers
- *
- * Copyright (C) 2007 The Regents of the University of California
- * Written by Michael Vrable <mvrable@cs.ucsd.edu>
+/* Cumulus: Efficient Filesystem Backup to the Cloud
+ * Copyright (C) 2007 The Cumulus Developers
+ * See the AUTHORS file for a list of contributors.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#include <map>
#include <string>
+std::string string_printf(const char *fmt, ...)
+ __attribute__((format(printf, 1, 2)));
+
std::string uri_encode(const std::string &in);
std::string uri_decode(const std::string &in);
std::string encode_int(long long n, int base=10);
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