Source is for programmers, obviously.
Interface has been made as simple as possible, with just a few calls :
|U32 MMC_InsertAndFindBestMatch (void* MMC_Data, BYTE* ip, BYTE** r);|
|U32 MMC_Insert1 (void* MMC_Data, BYTE* ip);|
|U32 MMC_InsertMany (void* MMC_Data, BYTE* ip, U32 length);|
MMC_Data is handled transparently, so that program users do not need to care about it. It can be manipulated with the simple definitions below :
|void* MMC_Create (BYTE* beginBuffer, BYTE* endBuffer);|
|U32 MMC_Init (void* MMC_Data, BYTE* beginBuffer, BYTE* endBuffer);|
|U32 MMC_Free (void** MMC_Data);|
Although this is plain C, the logic seems pretty close from C++, with all data encapsulated into a void*.
This logic also ensures that MMC is multi-thread ready.
You can download it here :