| Index: chrome/browser/sync/notifier/base/posix/time_posix.cc
|
| ===================================================================
|
| --- chrome/browser/sync/notifier/base/posix/time_posix.cc (revision 0)
|
| +++ chrome/browser/sync/notifier/base/posix/time_posix.cc (revision 0)
|
| @@ -0,0 +1,54 @@
|
| +// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include <assert.h>
|
| +#include <sys/time.h>
|
| +#include <stdlib.h>
|
| +#include <string.h>
|
| +
|
| +#include "chrome/browser/sync/notifier/base/time.h"
|
| +
|
| +namespace notifier {
|
| +
|
| +time64 GetCurrent100NSTime() {
|
| + struct timeval tv;
|
| + struct timezone tz;
|
| +
|
| + gettimeofday(&tv, &tz);
|
| +
|
| + time64 retval = tv.tv_sec * kSecsTo100ns;
|
| + retval += tv.tv_usec * kMicrosecsTo100ns;
|
| + retval += kStart100NsTimeToEpoch;
|
| + return retval;
|
| +}
|
| +
|
| +time64 TmToTime64(const struct tm& tm) {
|
| + struct tm tm_temp;
|
| + memcpy(&tm_temp, &tm, sizeof(struct tm));
|
| + time_t t = timegm(&tm_temp);
|
| + return t * kSecsTo100ns;
|
| +}
|
| +
|
| +bool Time64ToTm(time64 t, struct tm* tm) {
|
| + assert(tm != NULL);
|
| + time_t secs = t / kSecsTo100ns;
|
| + gmtime_r(&secs, tm);
|
| + return true;
|
| +}
|
| +
|
| +bool UtcTimeToLocalTime(struct tm* tm) {
|
| + assert(tm != NULL);
|
| + time_t t = timegm(tm);
|
| + localtime_r(&t, tm);
|
| + return true;
|
| +}
|
| +
|
| +bool LocalTimeToUtcTime(struct tm* tm) {
|
| + assert(tm != NULL);
|
| + time_t t = mktime(tm);
|
| + gmtime_r(&t, tm);
|
| + return true;
|
| +}
|
| +
|
| +} // namespace notifier
|
|
|
| Property changes on: chrome\browser\sync\notifier\base\posix\time_posix.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|