Control Libraries 7.4.0
Loading...
Searching...
No Matches
decoders.hpp
1#pragma once
2
3#include <google/protobuf/repeated_field.h>
4
5#include <state_representation/State.hpp>
6#include <state_representation/parameters/Parameter.hpp>
7
8#include "state_representation/state_message.pb.h"
9
10namespace clproto {
11
19template<typename FieldT>
20std::vector<FieldT> decoder(const google::protobuf::RepeatedField<FieldT>& message);
21
29template<typename FieldT>
30std::vector<FieldT> decoder(const google::protobuf::RepeatedPtrField<FieldT>& message);
31
38template<typename ParamT>
39state_representation::Parameter<ParamT> decoder(const state_representation::proto::Parameter& message);
40
41/*
42 * Declarations for decoding helpers
43 */
44std::vector<bool> decoder(const google::protobuf::RepeatedField<bool>& message);
45Eigen::Vector3d decoder(const state_representation::proto::Vector3d& message);
46Eigen::Quaterniond decoder(const state_representation::proto::Quaterniond& message);
47
48/*
49 * Definitions for templated RepeatedField methods
50 */
51template<typename FieldT>
52std::vector<FieldT> decoder(const google::protobuf::RepeatedField<FieldT>& message) {
53 return {message.begin(), message.end()};
54}
55
56template<typename FieldT>
57std::vector<FieldT> decoder(const google::protobuf::RepeatedPtrField<FieldT>& message) {
58 return {message.begin(), message.end()};
59}
60
61}
Class to represent name-value pairs of different types.
Definition Parameter.hpp:18
Bindings to encode and decode state objects into serialised binary message.
std::vector< FieldT > decoder(const google::protobuf::RepeatedField< FieldT > &message)
Decoding helper method for a RepeatedField message into vector data.
Definition decoders.hpp:52
std::string encode(const T &obj)
Encode a control libraries object into a serialized binary string representation (wire format).