10 * @brief Contains the operation request data.
12 class OperationRequest
15 OperationRequest(const std::string& input);
16 const std::string& input() const { return _input; }
23 * @brief Contains the operation response data.
25 class OperationResponse
28 OperationResponse(const std::string& output);
29 const std::string& output() const { return _output; }
36 * @brief Provides the operation.
38 class OperationProvider
42 * @brief Constructs an instance of OperationProvider.
43 * @param minLatencyMs The minimum latency to simulate for the operation.
44 * @param maxLatencyMs The maximum latency to simulate for the operation.
46 OperationProvider(std::uint32_t minLatencyMs, std::uint32_t maxLatencyMs);
49 * @brief Asynchronously executes the operation.
50 * @param request The request input data for the operation.
51 * @return A shared_future of the response of the operation.
53 std::shared_future<OperationResponse> executeAsync(const OperationRequest& request);
56 std::mt19937 _gen; ///< Used randomly determine an operation latency to simulate.
57 std::uniform_int_distribution<> _dis; ///< Used randomly determine an operation latency to simulate.