7#ifndef CONFFWK_DAL_OBJECT_PRINT_H_
8#define CONFFWK_DAL_OBJECT_PRINT_H_
17 p_val(std::ostream& s,
const T & data)
26 s << static_cast<uint16_t>(data);
33 s << static_cast<int16_t>(data);
37 template<Pr
intNumBase NUM_BASE = dec>
41 if constexpr (NUM_BASE ==
hex)
42 s.setf(std::ios::hex, std::ios::basefield);
43 else if constexpr (NUM_BASE ==
oct)
44 s.setf(std::ios::oct, std::ios::basefield);
46 if constexpr (NUM_BASE !=
dec)
47 s.setf(std::ios::showbase);
50 template<Pr
intNumBase NUM_BASE>
54 if constexpr (NUM_BASE !=
dec)
55 s.setf(std::ios::dec, std::ios::basefield);
59 template<Pr
intNumBase NUM_BASE=dec,
class T>
61 p_sv_attr(std::ostream &s,
const std::string &str,
const std::string &name,
const T &val)
noexcept
63 s << str << name <<
": ";
71 template<Pr
intNumBase NUM_BASE=dec,
class T>
73 p_mv_attr(std::ostream &s,
const std::string &str,
const std::string &name,
const T &val)
noexcept
77 s << str << val.size() <<
" value(s) in " << name <<
": ";
79 for (
const auto &x : val)
81 if (x != *val.begin())
90 s << str << name <<
" value is empty\n";
96 p_sv_rel(std::ostream &s,
const std::string &str,
const std::string &name,
const DalObject *obj);
101 p_sv_rel(std::ostream &s,
const std::string &str,
unsigned int indent,
const std::string &name,
const T *obj)
noexcept
103 s << str << name <<
":\n";
106 obj->print(indent + 4,
true, s);
108 s << str <<
" (null)\n";
114 p_mv_rel(std::ostream &s,
const std::string &str,
const std::string &name,
const T &objs)
noexcept
116 if (
auto len = objs.size())
117 s << str << len <<
" object(s) in " << name <<
": ";
119 s << str << name <<
" value is empty";
121 for (
const auto &x : objs)
123 if (x != *objs.begin())
134 p_mv_rel(std::ostream &s,
const std::string &str,
unsigned int indent,
const std::string &name,
const T &objs)
noexcept
136 if (
auto len = objs.size())
137 s << str << len <<
" object(s) in " << name <<
":\n";
139 s << str << name <<
" value is empty\n";
141 for (
const auto &x : objs)
142 x->print(indent + 4,
true, s);
void p_sv_rel(std::ostream &s, const std::string &str, const std::string &name, const DalObject *obj)
print weak single-value relationship
void p_mv_rel(std::ostream &s, const std::string &str, const std::string &name, const T &objs) noexcept
print weak multi-value relationship
void p_mv_attr(std::ostream &s, const std::string &str, const std::string &name, const T &val) noexcept
print multi-value attribute
void p_sv_attr(std::ostream &s, const std::string &str, const std::string &name, const T &val) noexcept
print single-value attribute
void p_base_start(std::ostream &s) noexcept
void p_val(std::ostream &s, const T &data)
void p_base_end(std::ostream &s) noexcept
void p_val< uint8_t >(std::ostream &s, const uint8_t &data)
void p_val< int8_t >(std::ostream &s, const int8_t &data)