28 param_.set_type(ParamType::NOT_SET);
32 param_.set_name(name);
37 param_.CopyFrom(parameter.param_);
41 param_.set_name(name);
42 param_.set_bool_value(bool_value);
43 param_.set_type(ParamType::BOOL);
44 param_.set_type_name(
"BOOL");
48 param_.set_name(name);
49 param_.set_int_value(int_value);
50 param_.set_type(ParamType::INT);
51 param_.set_type_name(
"INT");
55 param_.set_name(name);
56 param_.set_int_value(int_value);
57 param_.set_type(ParamType::INT);
58 param_.set_type_name(
"INT");
62 param_.set_name(name);
63 param_.set_double_value(double_value);
64 param_.set_type(ParamType::DOUBLE);
65 param_.set_type_name(
"DOUBLE");
69 param_.set_name(name);
70 param_.set_double_value(double_value);
71 param_.set_type(ParamType::DOUBLE);
72 param_.set_type_name(
"DOUBLE");
76 param_.set_name(name);
77 param_.set_string_value(string_value);
78 param_.set_type(ParamType::STRING);
79 param_.set_type_name(
"STRING");
83 param_.set_name(name);
84 param_.set_string_value(string_value);
85 param_.set_type(ParamType::STRING);
86 param_.set_type_name(
"STRING");
90 const std::string& full_name,
91 const std::string& proto_desc) {
92 param_.set_name(name);
93 param_.set_string_value(msg_str);
94 param_.set_type(ParamType::PROTOBUF);
95 param_.set_type_name(full_name);
96 param_.set_proto_desc(proto_desc);
100 const google::protobuf::Message& msg) {
101 param_.set_name(name);
103 msg.SerializeToString(&str);
106 param_.set_string_value(str);
107 param_.set_type(ParamType::PROTOBUF);
108 param_.set_type_name(msg.GetDescriptor()->full_name());
109 param_.set_proto_desc(desc);
117 std::stringstream ss;
118 ss <<
"{name: \"" << param_.
name() <<
"\", ";
119 ss <<
"type: \"" <<
TypeName() <<
"\", ";
122 case ParamType::BOOL: {
123 ss << (
AsBool() ?
"true" :
"false");
126 case ParamType::INT: {
127 ss << std::to_string(
AsInt64());
130 case ParamType::DOUBLE: {
134 case ParamType::STRING: {
138 case ParamType::PROTOBUF: {
139 ProtobufFactory::Instance()->RegisterMessage(
Descriptor());
141 ProtobufFactory::Instance()->GenerateMessageByType(
TypeName());
142 if (message !=
nullptr) {
143 message->ParseFromString(
AsString());
144 ss <<
"\"" << message->ShortDebugString() <<
"\"";
149 case ParamType::NOT_SET: {
A Parameter holds an apollo::cyber::proto::Param, It's more human-readable, you can use basic-value t...
std::string TypeName() const
Get Paramter's type name, i.e.
void FromProtoParam(const Param ¶m)
Parse a cyber::proto::Param object to cyber::parameter::Parameter object
Parameter()
Empty constructor
double AsDouble() const
et Paramter as a double value
std::string DebugString() const
show debug string
int64_t AsInt64() const
Get Paramter as an int64_t value
ParamType Type() const
Get the cyber:parameter::ParamType of this object
std::string Descriptor() const
Get Paramter's descriptor, only work on protobuf types
bool AsBool() const
Get Paramter as a bool value
const std::string AsString() const
Get Paramter as a string value
Param ToProtoParam() const
Parse a cyber::parameter::Parameter object to cyber::proto::Param object
static void GetDescriptorString(const google::protobuf::Message &message, std::string *desc_str)