envoyproxy/envoy

Clarify StreamInfo::route API

Open

#10,972 opened on Apr 28, 2020

View on GitHub
 (1 comment) (0 reactions) (0 assignees)C++ (5,373 forks)batch import
area/httphelp wantedtech debt

Repository metrics

Stars
 (27,997 stars)
PR merge metrics
 (Avg merge 8d) (378 merged PRs in 30d)

Description

Currently StreamInfo::route overloads two concepts: looking up the route and re-resolving the route. We should consider splitting this into

RouteConstSharedPtr route() const;
RouteConstSharedPtr resolveRoute();

to distinguish between a lookup and an intentional re-resolution of the route. route() would still have to resolve the route in case it hasn't been resolved, but at the very least this simplifies

callbacks_.clearRouteCache();
auto route = callbacks_.route();
// Act on route.

into

auto route = callbacks_.resolveRoute();
// Act on route.

and the semantics of the two functions are more obvious at a glance.

Contributor guide