#ifndef __CANMESSAGECALLBACK_H_ #define __CANMESSAGECALLBACK_H_ #ifdef __cplusplus #include "icsneo/communication/message/callback/messagecallback.h" #include "icsneo/communication/message/canmessage.h" #include "icsneo/communication/message/filter/canmessagefilter.h" #include 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)) {} }; } #endif // __cplusplus #endif