/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ | |
/** | |
* Copyright (C) 2014 Named Data Networking Project | |
* See COPYING for copyright and distribution information. | |
*/ | |
#include "time.hpp" | |
#include <time.h> | |
#include <stdexcept> | |
#include <sys/time.h> | |
namespace ndn { | |
namespace time { | |
Point | |
now() | |
{ | |
#ifdef HAVE_RT | |
struct timespec t; | |
int res = clock_gettime(CLOCK_MONOTONIC, &t); | |
if (res == -1) { | |
throw std::runtime_error("clock_gettime"); | |
} | |
return t.tv_sec * 1000000000 + t.tv_nsec; | |
#else | |
// fallback to wall clock time | |
struct timeval tv; | |
int res = gettimeofday(&tv, 0); | |
if (res == -1) { | |
throw std::runtime_error("gettimeofday"); | |
} | |
return tv.tv_sec * 1000000000 + tv.tv_usec * 1000; | |
#endif | |
} | |
} // namespace time | |
} // namespace ndn |