Rewriting ThreadedNarvalChainEmulator with variadic templates
There is only one implementation of the emulator : AGAPRO::TEmulatorPCF. The template class takes a variable number of class arguments from 2 (Producer->Consumer) to N (Producer->N Filters->Consumer). The parameters contain the size and number of blocks between each actor. Ex :
AGAPRO::TEmulatorPCF<BasicAFP, BasicAFC, AGAPRO::CF_Splitter, AGAPRO::CF_Binder> emulator("./",{1024*1024*100,1024*1024*20,1024*1024*20},{4,15,5});
This is a BasicAFP->CF_Splitter->CF_Binder->BasicAFC chain. The buffers are :
- 4 blocks of 100MB between BasicAFP and CF_Splitter
- 15 blocks of 20MB between CF_Splitter and CF_Binder
- 5 blocks of 20MB between CF_Binder and BasicAFP