Back to the GeoServer

Now that we’ve designed and implemented a ThreadPool, let’s take advantage of it. The first step is to change usersInBox to take a listener, or callback, as an argument. We update its code to return User objects to the client via the callback so that they can be asynchronously gathered.

The listener implementation in our test simply tracks users passed to its updated callback.

c9/13/GeoServerTest.cpp
 
TEST(AGeoServer_UsersInBox, AnswersUsersInSpecifiedRange) {
*
class​ GeoServerUserTrackingListener: ​public​ GeoServerListener {
*
public​:
*
void​ updated(​const​ User& user) { Users.push_back(user); }
*
vector<User> Users;
*
} trackingListener;
 
 
server.updateLocation(
 
bUser, Location{aUserLocation.go(Width / 2 - TenMeters, ...

Get Modern C++ Programming with Test-Driven Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.