Files
scylladb/gc_clock.hh
Avi Kivity 6d18aa8f20 Decompose database.hh, types.hh into smaller headers
Avoid include hell for new code.
2015-03-04 16:18:48 +02:00

27 lines
614 B
C++

/*
* Copyright 2015 Cloudius Systems
*/
#pragma once
#include <chrono>
#include <experimental/optional>
// FIXME: wraps around in 2038
class gc_clock {
using base = std::chrono::system_clock;
public:
using rep = int32_t;
using period = std::ratio<1, 1>; // seconds
using duration = std::chrono::duration<rep, period>;
using time_point = std::chrono::time_point<gc_clock, duration>;
static time_point now() {
return time_point(std::chrono::duration_cast<duration>(base::now().time_since_epoch()));
}
};
using ttl_opt = std::experimental::optional<gc_clock::time_point>;