diff --git a/communication/message/callback/include/canmessagecallback.h b/communication/message/callback/include/canmessagecallback.h index 07f325b..8bdfcd4 100644 --- a/communication/message/callback/include/canmessagecallback.h +++ b/communication/message/callback/include/canmessagecallback.h @@ -10,9 +10,11 @@ namespace icsneo { class CANMessageCallback : public MessageCallback { public: + CANMessageCallback(fn_messageCallback cb, std::shared_ptr f) : MessageCallback(cb, f) {} CANMessageCallback(fn_messageCallback cb, CANMessageFilter f = CANMessageFilter()) : MessageCallback(cb, std::make_shared(f)) {} // Allow the filter to be placed first if the user wants (maybe in the case of a lambda) + CANMessageCallback(std::shared_ptr f, fn_messageCallback cb) : MessageCallback(cb, f) {} CANMessageCallback(CANMessageFilter f, fn_messageCallback cb) : MessageCallback(cb, std::make_shared(f)) {} }; diff --git a/communication/message/callback/include/main51messagecallback.h b/communication/message/callback/include/main51messagecallback.h index 472243e..c508ab2 100644 --- a/communication/message/callback/include/main51messagecallback.h +++ b/communication/message/callback/include/main51messagecallback.h @@ -10,9 +10,11 @@ namespace icsneo { class Main51MessageCallback : public MessageCallback { public: + Main51MessageCallback(fn_messageCallback cb, std::shared_ptr f) : MessageCallback(cb, f) {} Main51MessageCallback(fn_messageCallback cb, Main51MessageFilter f = Main51MessageFilter()) : MessageCallback(cb, std::make_shared(f)) {} // Allow the filter to be placed first if the user wants (maybe in the case of a lambda) + Main51MessageCallback(std::shared_ptr f, fn_messageCallback cb) : MessageCallback(cb, f) {} Main51MessageCallback(Main51MessageFilter f, fn_messageCallback cb) : MessageCallback(cb, std::make_shared(f)) {} }; diff --git a/communication/message/callback/include/messagecallback.h b/communication/message/callback/include/messagecallback.h index 84c7591..325178f 100644 --- a/communication/message/callback/include/messagecallback.h +++ b/communication/message/callback/include/messagecallback.h @@ -16,7 +16,8 @@ public: MessageCallback(fn_messageCallback cb, MessageFilter f = MessageFilter()) : callback(cb), filter(std::make_shared(f)) {} // Allow the filter to be placed first if the user wants (maybe in the case of a lambda) - MessageCallback(MessageFilter f, fn_messageCallback cb) { MessageCallback(cb, f); } + MessageCallback(std::shared_ptr f, fn_messageCallback cb) : callback(cb), filter(f) {} + MessageCallback(MessageFilter f, fn_messageCallback cb) : callback(cb), filter(std::make_shared(f)) {} virtual bool callIfMatch(const std::shared_ptr& message) const { bool ret = filter->match(message);