11 #include <unordered_map>
39 static constexpr int8_t PROTOCOL_VERSION = 4;
53 void addElement(
const std::vector<std::string> & category, T element);
67 template<
typename SourceT,
typename T>
68 void addElement(SourceT * source,
const std::vector<std::string> & category, T element);
78 template<
typename T,
typename... Args>
79 void addElement(
const std::vector<std::string> & category, T element, Args... args);
91 template<
typename SourceT,
typename T,
typename... Args>
92 void addElement(SourceT * source,
const std::vector<std::string> & category, T element, Args... args);
119 template<
typename SourceT,
typename T>
132 template<
typename T,
typename... Args>
147 template<
typename SourceT,
typename T,
typename... Args>
149 const std::vector<std::string> & category,
161 bool hasElement(
const std::vector<std::string> & category,
const std::string & name);
170 void removeElement(
const std::vector<std::string> & category,
const std::string & name);
193 void removeElements(
const std::vector<std::string> & category,
void * source,
bool recurse =
false);
208 template<
typename... Args>
226 template<
typename... Args>
243 template<
typename... Args>
257 template<
typename... Args>
273 template<
typename T,
typename... Args>
291 template<
typename T,
typename... Args>
303 template<
typename T,
typename... Args>
304 void addPlot(
const std::string & name, T abscissa, Args... args);
341 const std::string & name,
353 inline size_t size()
const {
return elements_.size(); }
357 void addElementImpl(
void * source,
358 const std::vector<std::string> & category,
371 plot_callback_function_t callback;
377 uint64_t plot_id_ = 0;
379 std::unordered_map<std::string, PlotCallback> plots_;
381 bool update_data_ =
true;
383 std::vector<char> data_buffer_;
385 size_t data_buffer_size_ = 0;
389 const Element & operator()()
const;
390 Element & operator()();
391 std::function<Element &()> element;
397 ElementStore(T
self,
const Category & category,
ElementsStacking stacking,
void * source);
402 std::vector<ElementStore> elements;
403 std::vector<Category> sub;
406 std::vector<Category>::iterator find(
const std::string & name);
410 inline size_t size()
const
413 for(
const auto & c : sub) { s += c.size(); }
414 return s + elements.size();
427 Category * getCategory(
const std::vector<std::string> & category,
size_t depth = std::numeric_limits<size_t>::max());
430 Category & getOrCreateCategory(
const std::vector<std::string> & category);
436 void removeElements(Category & category,
void * source);
438 std::string cat2str(
const std::vector<std::string> & category);
440 void addPlotData(PlotCallback &) {}
442 template<
typename T,
typename... Args>
443 void addPlotData(PlotCallback & callback, T plot, Args... args);
450 #include "StateBuilder.hpp"
#define MC_RTC_GUI_DLLAPI
Definition: api.h:50
auto write(T &value)
Definition: traits.h:224
Plot
Definition: types.h:22
ElementsStacking
Definition: StateBuilder.h:21
Simplify access to values hold within a JSON file.
Definition: Configuration.h:166
Definition: MessagePackBuilder.h:87
Definition: StateBuilder.h:28
void addPlot(const std::string &name, T abscissa, Args... args)
void removeElements(void *source)
void removeElement(const std::vector< std::string > &category, const std::string &name)
void removeElements(const std::vector< std::string > &category, void *source, bool recurse=false)
bool hasElement(const std::vector< std::string > &category, const std::string &name)
void addXYPlot(const std::string &name, plot::AxisConfiguration xConfig, plot::AxisConfiguration yLeftConfig, plot::AxisConfiguration yRightConfig, Args... args)
void addXYPlot(const std::string &name, Args... args)
void addElement(const std::vector< std::string > &category, T element, Args... args)
void removeCategory(const std::vector< std::string > &category)
void addElement(SourceT *source, const std::vector< std::string > &category, ElementsStacking stacking, T element)
bool handleRequest(const std::vector< std::string > &category, const std::string &name, const mc_rtc::Configuration &data)
void addElement(const std::vector< std::string > &category, ElementsStacking stacking, T element)
void addElement(SourceT *source, const std::vector< std::string > &category, T element, Args... args)
void addPlot(const std::string &name, T abscissa, plot::AxisConfiguration yLeftConfig, plot::AxisConfiguration yRightConfig, Args... args)
void addElement(const std::vector< std::string > &category, ElementsStacking stacking, T element, Args... args)
size_t size() const
Definition: StateBuilder.h:353
void removePlot(const std::string &name)
bool addPlotData(const std::string &name, T data)
void addXYPlot(const std::string &name, plot::AxisConfiguration xConfig, plot::AxisConfiguration yLeftConfig, Args... args)
size_t update(std::vector< char > &data)
void addElement(SourceT *source, const std::vector< std::string > &category, T element)
mc_rtc::Configuration data()
void addXYPlot(const std::string &name, plot::AxisConfiguration xConfig, Args... args)
void addPlot(const std::string &name, T abscissa, plot::AxisConfiguration yLeftConfig, Args... args)
void addElement(SourceT *source, const std::vector< std::string > &category, ElementsStacking stacking, T element, Args... args)
void addElement(const std::vector< std::string > &category, T element)