9 const char* level_names[] = {
11 "trace",
"verbose",
"debug",
"info",
"summary",
12 "warning",
"error",
"fatal",
15 return level_names[lvl];
23 char num =
'0' +
level;
24 ss <<
"ZIO" << num <<
form;
25 if (
label.size() > 0) {
33 const size_t siz = p.size();
34 if (siz < 8)
return false;
35 if (p.substr(0,3) !=
"ZIO")
return false;
49 , m_payload(
std::move(pl))
61 : m_header({{lvl,
" ",
""},{0,0,0}})
96 const size_t maxsiz = 4;
97 const size_t siz = std::min(form.size(), maxsiz);
98 for (
size_t ind=0; ind<siz; ++ind) {
110 gran = std::chrono::duration_cast<std::chrono::microseconds>(tmp).count();
121 auto spmsg = mmsg.encode();
123 spmsg.set_routing_id(m_rid);
130 fromparts(zio::multipart_t::decode(data));
131 m_rid = data.routing_id();
136 zio::multipart_t mpmsg;
139 mpmsg.addmem(p.data(), p.size());
140 mpmsg.addtyp(m_header.
coord);
141 for (
const auto& spmsg: m_payload) {
142 mpmsg.addmem(spmsg.data(), spmsg.size());
150 const size_t nparts = mpmsg.size();
152 const auto& m0 = mpmsg[0];
153 std::string p(static_cast<const char*>(m0.data()), m0.size());
156 throw std::runtime_error(
"failed to parse prefix from parts");
159 const auto& m1 = mpmsg[1];
163 for (
size_t ind=2; ind<nparts; ++ind) {
164 const auto& m = mpmsg[ind];
165 m_payload.addmem(m.data(), m.size());
level::MessageLevel level() const
std::string label() const
zio::json label_object() const
Helper, when label holds a JSON object.
void set_level(level::MessageLevel level)
multipart_t toparts() const
Serialize self to multipart.
void set_form(const std::string &form)
void set_coord(origin_t origin=0, granule_t gran=0)
void decode(const message_t &dat)
void set_label(const std::string &label)
const char * name(MessageLevel lvl)
def parse(rule_object, params)
void set_label_object(const zio::json &lobj)
void fromparts(const multipart_t &allparts)
Set self from multipart. Nullifyies routing ID.