/// @param[in] signalCount - The length of the signals array.
/// @param[in] value - The CAN signal parsed from the message as a raw floating point
/// value.
-/// @param[out] send - An output parameter. If the decoding failed or the CAN signal should
-/// not send for some other reason, this should be flipped to false.
+/// @param[out] send - An output parameter. If decoding fails or CAN signal is
+/// not sending, this should be flipped to false.
///
/// @return a decoded value in an openxc_DynamicField struct.
///
/// A signal_encoder transforms a number, string or boolean into a raw floating
/// point value that fits in the CAN signal.
///
-/// @param[in] signal - The CAN signal to encode.
+/// @param[in] signal - The CAN signal to encode.
/// @param[in] value - The dynamic field to encode.
/// @param[out] send - An output parameter. If the encoding failed or the CAN signal should
/// not be encoded for some other reason, this will be flipped to false.
///
-typedef uint64_t (*signal_encoder)(can_signal_t* signal,
- openxc_DynamicField* value, bool* send);
+typedef uint64_t (*signal_encoder)(can_signal_t& signal,
+ const openxc_DynamicField& field, bool* send);
class can_signal_t
{