18#include "pw_bytes/span.h"
19#include "pw_log/levels.h"
20#include "pw_log/proto/log.pwpb.h"
21#include "pw_log_tokenized/metadata.h"
22#include "pw_result/result.h"
23#include "pw_status/try.h"
35constexpr inline uint32_t
PackLineLevel(uint32_t line_number, uint8_t level) {
36 return (level & PW_LOG_LEVEL_BITMASK) |
38 ~
static_cast<uint32_t
>(PW_LOG_LEVEL_BITMASK));
44 uint32_t line_and_level) {
45 return std::make_tuple(
46 (line_and_level & ~
static_cast<uint32_t
>(PW_LOG_LEVEL_BITMASK)) >>
48 line_and_level & PW_LOG_LEVEL_BITMASK);
62 std::string_view module_name,
63 std::string_view thread_name,
64 std::string_view file_name,
66 int64_t ticks_since_epoch,
67 std::string_view message,
76 int64_t ticks_since_epoch,
90 int64_t ticks_since_epoch,
93 metadata, tokenized_data, ticks_since_epoch, encode_buffer);
100 const uint8_t* tokenized_data,
101 size_t tokenized_data_size,
102 int64_t ticks_since_epoch,
105 as_bytes(
span(tokenized_data, tokenized_data_size)),
120 const uint8_t* tokenized_data,
121 size_t tokenized_data_size,
122 int64_t ticks_since_epoch,
127 as_bytes(
span(tokenized_data, tokenized_data_size)),
130 if (!thread_name.empty()) {
131 encoder.WriteThread(thread_name).IgnoreError();
148 int64_t ticks_since_epoch,
152 metadata, tokenized_data, ticks_since_epoch, encode_buffer);
153 if (!thread_name.empty()) {
154 encoder.WriteThread(thread_name).IgnoreError();
Result< ConstByteSpan > EncodeTokenizedLog(log_tokenized::Metadata metadata, ConstByteSpan tokenized_data, int64_t ticks_since_epoch, ByteSpan encode_buffer)
Definition: proto_utils.h:87
constexpr uint32_t PackLineLevel(uint32_t line_number, uint8_t level)
Definition: proto_utils.h:35
Result< ConstByteSpan > EncodeLog(int level, unsigned int flags, std::string_view module_name, std::string_view thread_name, std::string_view file_name, int line_number, int64_t ticks_since_epoch, std::string_view message, ByteSpan encode_buffer)
constexpr std::tuple< uint32_t, uint8_t > UnpackLineLevel(uint32_t line_and_level)
Definition: proto_utils.h:43
pwpb::LogEntry::MemoryEncoder CreateEncoderAndEncodeTokenizedLog(log_tokenized::Metadata metadata, ConstByteSpan tokenized_data, int64_t ticks_since_epoch, ByteSpan encode_buffer)
#define PW_LOG_LEVEL_BITS
Number of bits required to represent the log level.
Definition: levels.h:32
#define PW_TRY(expr)
Returns early if expr is a non-OK Status or Result.
Definition: try.h:27