#ifndef DEVICE_SPI_COMMAND_HANDLER_H #define DEVICE_SPI_COMMAND_HANDLER_H #include class AppSpiCommand; struct SpiCommandContext { uint8_t frame_type; const uint8_t *payload; uint16_t payload_len; uint8_t *tx_buf; uint16_t tx_buf_size; uint16_t *tx_len; }; class ISpiCommandHandler { public: ~ISpiCommandHandler() {} virtual bool canHandle(uint8_t frame_type) const = 0; virtual void handle(AppSpiCommand &bus, const SpiCommandContext &ctx) = 0; }; #endif /* DEVICE_SPI_COMMAND_HANDLER_H */