These pools are used to allocate dynamically objects: objects derived from your classes but also events. If an event has parameters, the resulting event structure is larger.
A highwater mark is a counter which is incremented when another block is allocated from a pool and never decremented: it shows how much a pool has been used so far. All event memory pools have such a mechanism: memoryPool_Event_default, memoryPool_Event_small, memoryPool_Event_medium and memoryPool_Event_large
Depending on the configuration of the memory pools, there are multiple pools. All pools are statically allocated in a generated RXF_Event.cpp and each pool consists of a number of blocks. You can configure the size of a block and the number of blocks in a pool. If you configure the block count to zero, that pool is not allocated.
At runtime, you can inspect the pools with a debugger. Per allocated pool, there is a member