19 namespace uhd {
namespace utils {
namespace chdr {
50 template <
typename payload_t>
54 std::optional<uint64_t> timestamp = {},
55 std::vector<uint64_t> metadata = {});
71 std::vector<uint8_t> payload_data,
72 std::optional<uint64_t> timestamp = {},
73 std::vector<uint64_t> metadata = {});
126 template <
typename OutputIterator>
127 void serialize(OutputIterator first,
139 template <
typename InputIterator>
168 template <
typename payload_t>
177 template <
typename payload_t>
185 template <
typename payload_t>
186 std::string to_string_with_payload(
190 void serialize_ptr(
endianness_t endianness,
void* start,
void* end)
const;
197 inline void set_header_lengths()
200 _header.set_length(get_packet_len());
205 std::vector<uint8_t> _payload;
206 std::optional<uint64_t> _timestamp;
207 std::vector<uint64_t> _mdata;
Definition: chdr_packet.hpp:36
std::optional< uint64_t > get_timestamp() const
uhd::rfnoc::chdr::chdr_header get_header() const
chdr_packet(uhd::rfnoc::chdr_w_t chdr_w, uhd::rfnoc::chdr::chdr_header header, std::vector< uint8_t > payload_data, std::optional< uint64_t > timestamp={}, std::vector< uint64_t > metadata={})
void set_timestamp(std::optional< uint64_t > timestamp)
const std::vector< uint64_t > & get_metadata() const
const std::vector< uint8_t > & get_payload_bytes() const
size_t get_packet_len() const
std::vector< uint8_t > serialize_to_byte_vector(endianness_t endianness=uhd::ENDIANNESS_LITTLE) const
void set_metadata(std::vector< uint64_t > metadata)
void set_header(uhd::rfnoc::chdr::chdr_header header)
std::string to_string() const
Return a string representation of this object.
void set_payload_bytes(std::vector< uint8_t > bytes)
#define UHD_API
Definition: include/uhd/config.h:87
chdr_w_t
Type that indicates the CHDR Width in bits.
Definition: rfnoc_types.hpp:19
constexpr size_t chdr_w_to_bits(chdr_w_t chdr_w)
Conversion from chdr_w_t to a number of bits.
Definition: rfnoc_types.hpp:22
Definition: endianness.hpp:16
endianness_t
Definition: endianness.hpp:18
@ ENDIANNESS_LITTLE
Definition: endianness.hpp:18