| // 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_ |