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) |
43 uint32_t line_and_level) {
44 return std::make_tuple(
46 line_and_level & PW_LOG_LEVEL_BITMASK);
60 std::string_view module_name,
61 std::string_view thread_name,
62 std::string_view file_name,
64 int64_t ticks_since_epoch,
65 std::string_view message,
74 int64_t ticks_since_epoch,
88 int64_t ticks_since_epoch,
91 metadata, tokenized_data, ticks_since_epoch, encode_buffer);
98 const uint8_t* tokenized_data,
99 size_t tokenized_data_size,
100 int64_t ticks_since_epoch,
103 as_bytes(
span(tokenized_data, tokenized_data_size)),
118 const uint8_t* tokenized_data,
119 size_t tokenized_data_size,
120 int64_t ticks_since_epoch,
125 as_bytes(
span(tokenized_data, tokenized_data_size)),
128 if (!thread_name.empty()) {
129 encoder.WriteThread(thread_name).IgnoreError();
146 int64_t ticks_since_epoch,
150 metadata, tokenized_data, ticks_since_epoch, encode_buffer);
151 if (!thread_name.empty()) {
152 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:85
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:42
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