@ -292,23 +292,22 @@ class LoadBalancerStatsServiceImpl : public LoadBalancerStatsService::Service {
} ;
void RunTestLoop ( std : : chrono : : duration < double > duration_per_query ) {
std : : vector < absl : : string_view > rpc_methods =
std : : vector < std : : string > rpc_methods =
absl : : StrSplit ( absl : : GetFlag ( FLAGS_rpc ) , ' , ' , absl : : SkipEmpty ( ) ) ;
// Store Metadata like
// "EmptyCall:key1:value1,UnaryCall:key1:value1,UnaryCall:key2:value2" into a
// map where the key is the RPC method and value is a vector of key:value
// pairs. {EmptyCall, [{key1,value1}],
// UnaryCall, [{key1,value1}, {key2,value2}]}
std : : vector < absl : : string_view > rpc_metadata =
std : : vector < std : : string > rpc_metadata =
absl : : StrSplit ( absl : : GetFlag ( FLAGS_metadata ) , ' , ' , absl : : SkipEmpty ( ) ) ;
std : : map < std : : string , std : : vector < std : : pair < std : : string , std : : string > > >
metadata_map ;
for ( auto & data : rpc_metadata ) {
std : : vector < absl : : string_view > metadata =
std : : vector < std : : string > metadata =
absl : : StrSplit ( data , ' : ' , absl : : SkipEmpty ( ) ) ;
GPR_ASSERT ( metadata . size ( ) = = 3 ) ;
metadata_map [ std : : string ( metadata [ 0 ] ) ] . push_back (
{ std : : string ( metadata [ 1 ] ) , std : : string ( metadata [ 2 ] ) } ) ;
metadata_map [ metadata [ 0 ] ] . push_back ( { metadata [ 1 ] , metadata [ 2 ] } ) ;
}
TestClient client ( grpc : : CreateChannel ( absl : : GetFlag ( FLAGS_server ) ,
grpc : : InsecureChannelCredentials ( ) ) ) ;
@ -319,11 +318,11 @@ void RunTestLoop(std::chrono::duration<double> duration_per_query) {
std : : thread thread = std : : thread ( & TestClient : : AsyncCompleteRpc , & client ) ;
while ( true ) {
for ( const absl : : string_view & rpc_method : rpc_methods ) {
for ( const std : : string & rpc_method : rpc_methods ) {
elapsed = std : : chrono : : system_clock : : now ( ) - start ;
if ( elapsed > duration_per_query ) {
start = std : : chrono : : system_clock : : now ( ) ;
auto metadata_iter = metadata_map . find ( std : : string ( rpc_method ) ) ;
auto metadata_iter = metadata_map . find ( rpc_method ) ;
if ( rpc_method = = " EmptyCall " ) {
client . AsyncEmptyCall (
metadata_iter ! = metadata_map . end ( )