Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
It would be nice to have a set of callable objects and corresponding event hooks in useful places that can be set by a client application at runtime.
This is intended to provide a scalable mechanism for implementing counters (#retries, #namenode requests) or application specific testing e.g. simulate a dropped connection when the test system running the client application requests.
Current implementation plan is a struct full of callbacks (std::functions) owned by the FileSystemImpl. A callback could be set (or left as a no-op) and when the code hits the corresponding event it will be invoked with a reference to the object (for context) and each method argument by reference. The callback returns a bool: true to continue execution or false to bail out of the calling method.