in messaging/testapp/src/common_main.cc [26:59]
static bool WaitForFuture(const ::firebase::FutureBase& future, const char* fn,
::firebase::messaging::Error expected_error,
bool log_error = true) {
// Note if the future has not be started properly.
if (future.status() == ::firebase::kFutureStatusInvalid) {
LogMessage("ERROR: Future for %s is invalid", fn);
return false;
}
// Wait for future to complete.
LogMessage(" %s...", fn);
while (future.status() == ::firebase::kFutureStatusPending) {
if (ProcessEvents(100)) return true;
}
// Log error result.
if (log_error) {
const ::firebase::messaging::Error error =
static_cast<::firebase::messaging::Error>(future.error());
if (error == expected_error) {
const char* error_message = future.error_message();
if (error_message) {
LogMessage("%s completed as expected", fn);
} else {
LogMessage("%s completed as expected, error: %d '%s'", fn, error,
error_message);
}
} else {
LogMessage("ERROR: %s completed with error: %d, `%s`", fn, error,
future.error_message());
}
}
return false;
}