77#ifndef PokemonAutomation_PABotBase2_ConnectionLayer_PacketParser_H
88#define PokemonAutomation_PABotBase2_ConnectionLayer_PacketParser_H
99
10- #include " PABotBase2_StreamInterface.h"
10+ #include " ../ PABotBase2_StreamInterface.h"
1111#include " PABotBase2_Connection.h"
1212
13- namespace PokemonAutomation {
14- namespace PABotBase2 {
15-
16-
13+ #ifdef PABB2_SIZING_OVERRIDE
14+ #include " PABotBase2_Config.h"
15+ #else
1716
1817// Maximum size of incoming packet + overhead.
1918// Min Size: sizeof(largest header) + sizeof(uint32_t) + 1
@@ -22,14 +21,22 @@ namespace PABotBase2{
2221#define PABB2_MAX_INCOMING_PACKET_SIZE ((uint16_t )128 )
2322#endif
2423
24+ #endif
25+
26+ namespace PokemonAutomation {
27+ namespace PABotBase2 {
28+
29+
2530
2631
2732#define PABB2_PacketParser_RESULT_VALID 0
2833#define PABB2_PacketParser_RESULT_INVALID 1
2934#define PABB2_PacketParser_RESULT_CHECKSUM_FAIL 2
3035
3136
32- typedef void (*pabb2_fp_PacketRunner)(void * context, const PacketHeader* data);
37+ struct PacketRunner {
38+ virtual void on_packet (const PacketHeader* data) = 0;
39+ };
3340
3441
3542struct PacketParser {
@@ -62,7 +69,7 @@ struct PacketParser{
6269 // "packet_runner" multiple times.
6370 //
6471 void push_bytes (
65- void * context, pabb2_fp_PacketRunner packet_runner,
72+ PacketRunner& packet_runner,
6673 const uint8_t * data, size_t bytes
6774 );
6875
0 commit comments