/workspaces/astro/sol3-sdk/cpp/sol3/core/message_log_path_utils.h Source File

Space-ng SDK: /workspaces/astro/sol3-sdk/cpp/sol3/core/message_log_path_utils.h Source File
Space-ng SDK
message_log_path_utils.h
Go to the documentation of this file.
1 // Copyright (c) Space-ng, inc. All rights reserved.
2 
3 #pragma once
5 #include "sol3/cpp/filesystem.h"
6 
7 #include <chrono>
8 #include <string>
9 #include <vector>
10 
11 namespace sol3::core {
12 
14 char constexpr const* kLogExtension = ".sol3";
15 
16 namespace impl {
18 bool isUpperAlphaNumeric(std::string const& str) noexcept;
20 bool isValidHostId(std::string const& host_id) noexcept;
22 bool isValidRunUuid(std::string const& run_id) noexcept;
23 } // namespace impl
31 cpp::fs::path logFilenamePathStem(
32  std::chrono::system_clock::time_point start_time,
33  core::MessagePort port,
34  std::string const& recv_host_id,
35  std::string const& run_uuid,
36  uint16_t duration_s);
37 
39 cpp::fs::path createUniqueLogPath(
40  cpp::fs::path const& log_dir,
41  std::chrono::system_clock::time_point start_time,
42  core::MessagePort port,
43  std::string const& host_id,
44  std::string const& run_id,
45  uint16_t duration_s);
46 
49  cpp::fs::path const& path,
50  uint32_t port_encoded,
51  std::string const& host_id,
52  std::string const& run_id);
53 
55 std::vector<cpp::fs::path> enumerateLogFiles(
56  cpp::fs::path const& log_dir,
57  uint32_t port_encoded,
58  std::string const& host_id,
59  std::string const& run_id);
60 
61 } // namespace sol3::core
Definition: message_port.h:19
bool isUpperAlphaNumeric(std::string const &str) noexcept
String contains only: A-Z 0-9.
bool isValidHostId(std::string const &host_id) noexcept
Checks if host is upper alpha numeric 4 characters long.
bool isValidRunUuid(std::string const &run_id) noexcept
Checks if run id is upper alpha numeric and 8 characters long.
Definition: any_message_input.h:15
cpp::fs::path createUniqueLogPath(cpp::fs::path const &log_dir, std::chrono::system_clock::time_point start_time, core::MessagePort port, std::string const &host_id, std::string const &run_id, uint16_t duration_s)
Create a unique log file path in log_dir for the given start_time and port.
bool matchesLogFilename(cpp::fs::path const &path, uint32_t port_encoded, std::string const &host_id, std::string const &run_id)
Return true if the path matches the expected log filename pattern.
cpp::fs::path logFilenamePathStem(std::chrono::system_clock::time_point start_time, core::MessagePort port, std::string const &recv_host_id, std::string const &run_uuid, uint16_t duration_s)
constexpr char const * kLogExtension
Filesystem extension (with dot) for log files.
Definition: message_log_path_utils.h:14
std::vector< cpp::fs::path > enumerateLogFiles(cpp::fs::path const &log_dir, uint32_t port_encoded, std::string const &host_id, std::string const &run_id)
Collect log files in log_dir that match the configured identifiers.