retrievalStage method

Future<void> retrievalStage(
  1. RADRequest radRequest,
  2. List<RetrieveReport> reports
)

Implementation

Future<void> retrievalStage(
    RADRequest radRequest, List<RetrieveReport> reports) async {
  // Retrieve the sources

  for (int i = 0; i < radRequest.retrieve.length; i++) {
    Stopwatch stopwatch = new Stopwatch()..start();

    var retrieve = radRequest.retrieve[i];
    var result = '';
    if (requestCache.containsKey(retrieve.url)) {
      result = requestCache[retrieve.url]!;
    } else {
      var webClient = RadonWebClient();
      result = await webClient.retrieve(retrieve.url);
      requestCache[retrieve.url] = result;
    }

    var resp = processScript(result, retrieve.script.toList());
    var trace = resp['trace'];
    var script = resp['script'];

    // Store the result
    reports.add(RetrieveReport(
        time: (stopwatch.elapsedMicroseconds * 0.001),
        trace: trace,
        script: script));
  }
}