SimaticResearchActivity / FBAE

Framework for Broadcast Algorithms Evaluation
GNU Affero General Public License v3.0
0 stars 1 forks source link

Add one new runtime argument to pass runtime arguments to concrete Algo Alyer (and another one for concrete Comm Layer) #44

Closed simatic closed 2 months ago

simatic commented 6 months ago

Some concrete Algo Layer may need to get runtime arguments. For instance, for Trains algorithm, it will probably be desirable to be able to specify the number of trains which turn around simultaneously the logical ring of participating processes.

At the same time, some concrete Comm Layer may need to get runtime arguments. For instance, in the context of issue #36 , it is desirable to be able to specify at runtime the maximum number of bytes under which Tcp::send() sends a message with a single boost::asio::write().

To answer to these desires, introduce two new runtime arguments:

  1. -A|--algoArgument <string> specifies a which can be processed by concrete Algo Layer. For instance, in the case of Trains algorithm implementation, we could use -A nbTrains=4 to specify that Trains algorithm will run 4 trains in parallel.
  2. -C|--commArgument <string> specifies a which can be processed by concrete Comm Layer. For instance, in the case of Tcp class, we could use -C maxSizeForOneTcpWrite=65536 to specify that Tcp::send(msg) sends a message with a single boost::asio::write() as long as msg.length() is lower than 65536 bytes.