29 for (
const auto& [tag, value] : co) {
42 const auto* descriptor_p = m.GetDescriptor();
43 const auto& des = *descriptor_p;
45 const auto* reflection_p = m.GetReflection();
46 const auto& ref = *reflection_p;
50 auto count = des.field_count();
51 for (
int i = 0; i < count; ++i) {
52 const auto* field_p = des.field(i);
53 if (field_p->is_repeated())
56 auto name = top_block.empty() ? field_p->name() : top_block +
'.' + field_p->name();
58 auto type = field_p->cpp_type();
62 case FieldDescriptor::CppType::CPPTYPE_INT32:
65 case FieldDescriptor::CppType::CPPTYPE_INT64:
68 case FieldDescriptor::CppType::CPPTYPE_UINT32:
71 case FieldDescriptor::CppType::CPPTYPE_UINT64:
74 case FieldDescriptor::CppType::CPPTYPE_DOUBLE:
77 case FieldDescriptor::CppType::CPPTYPE_FLOAT:
80 case FieldDescriptor::CppType::CPPTYPE_BOOL:
83 case FieldDescriptor::CppType::CPPTYPE_STRING:
86 case FieldDescriptor::CppType::CPPTYPE_MESSAGE: {
88 ret.insert(data.begin(), data.end());
108 const auto* descriptor_p = m.GetDescriptor();
109 const auto& des = *descriptor_p;
111 const auto* reflection_p = m.GetReflection();
112 const auto& ref = *reflection_p;
116 auto count = des.field_count();
117 for (
int i = 0; i < count; ++i) {
118 const auto* field_p = des.field(i);
119 if (field_p->is_repeated())
122 auto name = top_block.empty() ? field_p->name() : top_block +
'.' + field_p->name();
124 auto type = field_p->cpp_type();
126 if (
type == FieldDescriptor::CppType::CPPTYPE_MESSAGE) {
127 auto message = ref.MutableMessage(&m, field_p);
131 auto value = e.
data().find(name)->second;
134 case FieldDescriptor::CppType::CPPTYPE_INT32:
135 ref.SetInt32(&m, field_p, value.int4_value());
137 case FieldDescriptor::CppType::CPPTYPE_INT64:
138 ref.SetInt64(&m, field_p, value.int8_value());
140 case FieldDescriptor::CppType::CPPTYPE_UINT32:
141 ref.SetUInt32(&m, field_p, value.uint4_value());
143 case FieldDescriptor::CppType::CPPTYPE_UINT64:
144 ref.SetUInt64(&m, field_p, value.uint8_value());
146 case FieldDescriptor::CppType::CPPTYPE_DOUBLE:
147 ref.SetDouble(&m, field_p, value.double_value());
149 case FieldDescriptor::CppType::CPPTYPE_FLOAT:
150 ref.SetFloat(&m, field_p, value.float_value());
152 case FieldDescriptor::CppType::CPPTYPE_BOOL:
153 ref.SetBool(&m, field_p, value.boolean_value());
155 case FieldDescriptor::CppType::CPPTYPE_STRING:
156 ref.SetString(&m, field_p, value.string_value());
171 if (!
id.application().empty()) {
173 ret +=
id.application();
176 for (
int i = 0; i <
id.substructure().
size(); ++i) {
178 ret +=
id.substructure()[i];
192 id.set_session(element);
196 if (
id.application().empty()) {
197 id.set_application(element);
220 google::protobuf::Message& m,
221 const google::protobuf::FieldDescriptor* f_p,
225 r.SetInt32(&m, f_p, value);
231 google::protobuf::Message& m,
232 const google::protobuf::FieldDescriptor* f_p,
236 r.SetInt64(&m, f_p, value);
242 google::protobuf::Message& m,
243 const google::protobuf::FieldDescriptor* f_p,
247 r.SetUInt32(&m, f_p, value);
253 google::protobuf::Message& m,
254 const google::protobuf::FieldDescriptor* f_p,
258 r.SetUInt64(&m, f_p, value);
264 google::protobuf::Message& m,
265 const google::protobuf::FieldDescriptor* f_p,
269 r.SetDouble(&m, f_p, value);
275 google::protobuf::Message& m,
276 const google::protobuf::FieldDescriptor* f_p,
280 r.SetFloat(&m, f_p, value);
286 google::protobuf::Message& m,
287 const google::protobuf::FieldDescriptor* f_p,
291 r.SetBool(&m, f_p, value);
297 google::protobuf::Message& m,
298 const google::protobuf::FieldDescriptor* f_p,
302 r.SetString(&m, f_p, value);
::google::protobuf::Map< std::string, ::dunedaq::opmon::OpMonValue > * mutable_data()
const ::google::protobuf::Map< std::string, ::dunedaq::opmon::OpMonValue > & data() const
void set_measurement(Arg_ &&arg, Args_... args)
::google::protobuf::Map< std::string, std::string > * mutable_custom_origin()
void set_session(Arg_ &&arg, Args_... args)
void set_application(Arg_ &&arg, Args_... args)
std::string * add_substructure()
void set_int4_value(::int32_t value)
void set_uint4_value(::uint32_t value)
void set_boolean_value(bool value)
void set_string_value(Arg_ &&arg, Args_... args)
void set_uint8_value(::uint64_t value)
void set_int8_value(::int64_t value)
void set_float_value(float value)
void set_double_value(double value)
const dunedaq::opmon::OpMonId & operator+=(dunedaq::opmon::OpMonId &, const std::string &element)
dunedaq::opmon::OpMonId operator+(const dunedaq::opmon::OpMonId &, const std::string &element)
void set_value(google::protobuf::Message &m, const std::string &name, T value)
std::remove_const< std::remove_reference< cr_map_type >::type >::type map_type
M from_entry(const dunedaq::opmon::OpMonEntry &)
dunedaq::opmon::OpMonEntry to_entry(const google::protobuf::Message &m, const CustomOrigin &co)
opmon::OpMonId make_origin(const std::string &session, const std::string &app)
map_type to_map(const google::protobuf::Message &m, std::string top_block="")
std::string to_string(const dunedaq::opmon::OpMonId &)
std::map< std::string, std::string > CustomOrigin
FELIX Initialization std::string initerror FELIX queue timed std::string queuename Unexpected chunk size