Shared pointer on value is a wrong way because once they is no more object
refering to a parent then the pointer on it is destoyed. Not a big deal here
but we better have to use raw pointer.
Change-Id: I58deeb9e82c446ea135be87c11f405da54cc5bff
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
{
for(auto& sig: can_signals_)
{
{
for(auto& sig: can_signals_)
{
- sig->set_parent(std::make_shared<can_message_definition_t>(*this));
-void can_message_definition_t::set_parent(std::shared_ptr<can_message_set_t> parent)
+void can_message_definition_t::set_parent(can_message_set_t* parent)
class can_message_definition_t
{
private:
class can_message_definition_t
{
private:
- std::shared_ptr<can_message_set_t> parent_; /*!< parent_ - Pointer to the CAN message set holding this CAN message definition */
+ can_message_set_t* parent_; /*!< parent_ - Pointer to the CAN message set holding this CAN message definition */
std::string bus_; /*!< bus_ - Address of CAN bus device. */
uint32_t id_; /*!< id_ - The ID of the message.*/
can_message_format_t format_; /*!< format_ - the format of the message's ID.*/
std::string bus_; /*!< bus_ - Address of CAN bus device. */
uint32_t id_; /*!< id_ - The ID of the message.*/
can_message_format_t format_; /*!< format_ - the format of the message's ID.*/
uint32_t get_id() const;
std::vector<std::shared_ptr<can_signal_t> >& get_can_signals();
uint32_t get_id() const;
std::vector<std::shared_ptr<can_signal_t> >& get_can_signals();
- void set_parent(std::shared_ptr<can_message_set_t> parent);
+ void set_parent(can_message_set_t* parent);
void set_last_value(const can_message_t& cm);
};
void set_last_value(const can_message_t& cm);
};
{
for(auto& cmd : can_messages_definition_)
{
{
for(auto& cmd : can_messages_definition_)
{
- cmd->set_parent(std::make_shared<can_message_set_t>(*this));
-std::shared_ptr<can_message_definition_t> can_signal_t::get_message() const
+can_message_definition_t* can_signal_t::get_message() const
-void can_signal_t::set_parent(std::shared_ptr<can_message_definition_t> parent)
+void can_signal_t::set_parent(can_message_definition_t* parent)
class can_signal_t
{
private:
class can_signal_t
{
private:
- std::shared_ptr<can_message_definition_t> parent_; /*!< parent_ - pointer to the parent message definition holding this signal*/
+ can_message_definition_t* parent_; /*!< parent_ - pointer to the parent message definition holding this signal*/
utils::socketcan_bcm_t socket_; /*!< socket_ - Specific BCM socket that filter the signal read from CAN device */
std::string generic_name_; /*!< generic_name_ - The name of the signal to be output.*/
static std::string prefix_; /*!< prefix_ - generic_name_ will be prefixed with it. It has to reflect the used protocol.
utils::socketcan_bcm_t socket_; /*!< socket_ - Specific BCM socket that filter the signal read from CAN device */
std::string generic_name_; /*!< generic_name_ - The name of the signal to be output.*/
static std::string prefix_; /*!< prefix_ - generic_name_ will be prefixed with it. It has to reflect the used protocol.
bool received);
utils::socketcan_bcm_t get_socket() const;
bool received);
utils::socketcan_bcm_t get_socket() const;
- std::shared_ptr<can_message_definition_t> get_message() const;
+ can_message_definition_t* get_message() const;
const std::string& get_generic_name() const;
const std::string get_name() const;
const std::string& get_prefix() const;
const std::string& get_generic_name() const;
const std::string get_name() const;
const std::string& get_prefix() const;
bool get_received() const;
float get_last_value() const;
bool get_received() const;
float get_last_value() const;
- void set_parent(std::shared_ptr<can_message_definition_t> parent);
+ void set_parent(can_message_definition_t* parent);
void set_prefix(std::string val);
void set_received(bool r);
void set_last_value(float val);
void set_prefix(std::string val);
void set_received(bool r);
void set_last_value(float val);