libicsneo/include/icsneo/communication/message/callback/canmessagecallback.h

23 lines
946 B
C++

#ifndef __CANMESSAGECALLBACK_H_
#define __CANMESSAGECALLBACK_H_
#include "icsneo/communication/message/callback/messagecallback.h"
#include "icsneo/communication/message/canmessage.h"
#include "icsneo/communication/message/filter/canmessagefilter.h"
#include <memory>
namespace icsneo {
class CANMessageCallback : public MessageCallback {
public:
CANMessageCallback(fn_messageCallback cb, std::shared_ptr<CANMessageFilter> f) : MessageCallback(cb, f) {}
CANMessageCallback(fn_messageCallback cb, CANMessageFilter f = CANMessageFilter()) : MessageCallback(cb, std::make_shared<CANMessageFilter>(f)) {}
// Allow the filter to be placed first if the user wants (maybe in the case of a lambda)
CANMessageCallback(std::shared_ptr<CANMessageFilter> f, fn_messageCallback cb) : MessageCallback(cb, f) {}
CANMessageCallback(CANMessageFilter f, fn_messageCallback cb) : MessageCallback(cb, std::make_shared<CANMessageFilter>(f)) {}
};
};
#endif