diff --git a/src/core/time.c b/src/core/time.c
index 762ffd0034fc3315c77e3951c0a41f5566fa2a3b..5d34e18b4fed99a8769ed9f17d226e6d9432db5d 100644 (file)
--- a/src/core/time.c
+++ b/src/core/time.c
* public API
*/
-/* 1 second (in micro-seconds) */
+/* 1 second (in nano-seconds) */
#define SEC 1000000000L
const sdb_time_t SDB_INTERVAL_YEAR = 3652425L * 24L * 60L * 60L * 100000L;
return n;
} /* sdb_strfinterval */
+sdb_time_t
+sdb_strpunit(const char *s)
+{
+ struct {
+ const char *s;
+ sdb_time_t unit;
+ } units[] = {
+ { "Y", SDB_INTERVAL_YEAR },
+ { "M", SDB_INTERVAL_MONTH },
+ { "D", SDB_INTERVAL_DAY },
+ { "h", SDB_INTERVAL_HOUR },
+ { "m", SDB_INTERVAL_MINUTE },
+ { "s", SDB_INTERVAL_SECOND },
+ { "ms", SDB_INTERVAL_SECOND / 1000L },
+ { "us", SDB_INTERVAL_SECOND / 1000000L },
+ { "ns", 1 },
+ };
+
+ size_t i;
+
+ for (i = 0; i < SDB_STATIC_ARRAY_LEN(units); ++i)
+ if (! strcmp(s, units[i].s))
+ return units[i].unit;
+ return 0;
+} /* sdb_strpunit */
+
/* vim: set tw=78 sw=4 ts=4 noexpandtab : */