Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Significant refactoring of dependencies in the Replication System's r…
…equests The dependency has been reversed to make the request classes depend on the Controller. In the previous version of the code, the Controller was the dependency "hub" by knowing about all possible request classes. The change fixes the original design mistake in the Replication Framework. The Controller class is no longer required to instantiate the requests. The instantiation is now done via each request's "create::" factory method that has been renamed into "::createAndStart" to reflect what the method actually does. The very same factory method is also used to start request immediatelly upon the instantiation. Note that in the new code each request object self-registeres (and unregisteres) itself with the Controller, which allows the Controller to keep a track of all active (started and not yet finished) requests. The management request classes that are meant for stopping o probing the worker-side requests have been redesigned. The complex template definitions have been replaced with simple classes. The older version of the request status class was replaced with the simpler status probe (explained in the previous paragraph) and a new request "tracking" message that is used internally by the corresponding requests to track progress of the requests at workers. Overall, all these changes have reduced the amnount of the boilerplate code that is needed for adding new request types to the Framework.
- Loading branch information