blob: d8bb4e590c67d3d1a4bd47f6a6aa75e576738475 [file] [log] [blame]
// Copyright 2021 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef BOOTID_LOGGER_TIMESTAMP_UTIL_H_
#define BOOTID_LOGGER_TIMESTAMP_UTIL_H_
#include <string>
#include <base/time/time.h>
#include <base/files/file_path.h>
// Retrieve the timestamp of the first (and oldest) entry in the file. If
// failed, return a null time,
base::Time GetFirstTimestamp(const base::FilePath& file);
// Retrieve the oldest timestamp from the file among the series of log files.
// For example, when "message.log" is given as |base_log_name|, this method
// checks the oldest file among "message.log", "message.log.1", "message.log.2"
// .... If failed, return a null time.
// Note that, if the entry doesn't exist in a file, use the timestamp one day
// prior to the last modifiled time of the file (assumeing the file is rotated
// daily).
base::Time GetOldestTimestampFromLogFiles(const base::FilePath& dir_path,
const std::string& base_log_name);
// Retrieve the oldest timestamp from the multiple series of log files.
// |base_log_names| is a NULL-terminated array of base file names. This method
// calls |GetOldestTimestampFromLogFiles| for each file of |base_log_names|.
// If failed, return a null time.
base::Time GetOldestModifiedTime(base::FilePath log_directory,
const char* base_log_names[]);
// Retrieve the oldest timestamp from the default log files. This method calls
// |GetOldestModifiedTime| with the default base file name list.
// If failed, return a null time.
base::Time GetOldestModifiedTime();
// Extract timestamp from a bootid log entry.
// If failed, return a null time.
base::Time ExtractTimestampString(const std::string& boot_id_entry);
#endif // BOOTID_LOGGER_TIMESTAMP_UTIL_H_