/** * Route a telemetry message. Finds all routes for a given telemetry message. * * @param message The telemetry message that needs routed. * @param config The configuration for the Profiler. * @param context The Stellar execution context. * @return A list of all the routes for the message. */ @Override public List<MessageRoute> route(JSONObject message, ProfilerConfig config, Context context) { List<MessageRoute> routes = new ArrayList<>(); // attempt to route the message to each of the profiles for (ProfileConfig profile: config.getProfiles()) { Clock clock = clockFactory.createClock(config); Optional<MessageRoute> route = routeToProfile(message, profile, clock); route.ifPresent(routes::add); } return routes; }