24 explicit Writer(const ::ros::NodeHandle &nh)
46 if (XmlRpc::XmlRpcValue::TypeInvalid ==
impl_->root_value_.getType())
48 impl_->root_value_ =
"";
51 impl_->root_name_.clear();
60 impl_->root_name_ = map_name;
65 impl_->emplace(&(
impl_->getRawNode()[map_name]));
77 impl_->getRawNode().setSize(
static_cast<int>(size));
78 impl_->emplace(0, size);
85 "Internal error: array has more elements than expected.");
102 impl_->getRawNode() = element;
108 impl_->getRawNode() = element;
116 impl_->root_name_ =
"";
117 impl_->root_value_.clear();
136 #define ARILES2_BASIC_TYPE(type) \
137 void Writer::writeElement(const type &element, const Parameters &) \
139 impl_->getRawNode() = element; \
144 #undef ARILES2_BASIC_TYPE
148 #define ARILES2_BASIC_TYPE(type) \
149 void Writer::writeElement(const type &element, const Parameters &) \
152 static_cast<int64_t>(element) <= std::numeric_limits<int>::max() \
153 && static_cast<int64_t>(element) >= static_cast<int64_t>(std::numeric_limits<int>::min()), \
154 "Value is out of range."); \
155 impl_->getRawNode() = static_cast<int>(element); \
160 #undef ARILES2_BASIC_TYPE
163 #define ARILES2_BASIC_TYPE(type) \
164 void Writer::writeElement(const type &element, const Parameters &) \
167 static_cast<uint64_t>(element) <= static_cast<uint64_t>(std::numeric_limits<int>::max()), \
168 "Value is too large."); \
169 impl_->getRawNode() = static_cast<int>(element); \
174 #undef ARILES2_BASIC_TYPE
void startArray(const std::size_t size, const bool=false)
void flush()
Flush the configuration to the output.
void startMapEntry(const std::string &map_name)
Starts a nested map in the configuration file.
Writer(const ::ros::NodeHandle &nh)
void endRoot(const std::string &name)
void startRoot(const std::string &name, const Parameters &)
Writer(const ::ros::NodeHandle &nh)
void makeImplPtr(t_Args &&...args)
void writeElement(const std::complex< t_Scalar > &entry, const Parameters ¶m)
#define CPPUT_ASSERT(condition,...)
#define ARILES2_BASIC_REAL_TYPES_LIST
#define ARILES2_BASIC_UNSIGNED_INTEGER_TYPES_LIST
#define ARILES2_BASIC_SIGNED_INTEGER_TYPES_LIST
visitor::Parameters Parameters
CPPUT_MACRO_SUBSTITUTE(ARILES2_BASIC_SIGNED_INTEGER_TYPES_LIST) CPPUT_MACRO_SUBSTITUTE(ARILES2_BASIC_UNSIGNED_INTEGER_TYPES_LIST) CPPUT_MACRO_SUBSTITUTE(ARILES2_BASIC_REAL_TYPES_LIST) void Reader
#define CPPUT_TRACE_FUNCTION