blob: 430f34f46cba9d73e6d7a8676ae7816f3be34b5c [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "net/quic/test_tools/delayed_verify_strike_register_client.h"
using base::StringPiece;
using std::string;
namespace net {
namespace test {
DelayedVerifyStrikeRegisterClient::DelayedVerifyStrikeRegisterClient(
unsigned max_entries,
uint32_t current_time_external,
uint32_t window_secs,
const uint8_t orbit[8],
StrikeRegister::StartupType startup)
: LocalStrikeRegisterClient(max_entries,
current_time_external,
window_secs,
orbit,
startup),
delay_verifications_(false) {}
DelayedVerifyStrikeRegisterClient::~DelayedVerifyStrikeRegisterClient() {}
void DelayedVerifyStrikeRegisterClient::VerifyNonceIsValidAndUnique(
StringPiece nonce,
QuicWallTime now,
ResultCallback* cb) {
if (delay_verifications_) {
pending_verifications_.push_back(VerifyArgs(nonce, now, cb));
} else {
LocalStrikeRegisterClient::VerifyNonceIsValidAndUnique(nonce, now, cb);
}
}
int DelayedVerifyStrikeRegisterClient::PendingVerifications() const {
return pending_verifications_.size();
}
void DelayedVerifyStrikeRegisterClient::RunPendingVerifications() {
std::vector<VerifyArgs> pending;
pending_verifications_.swap(pending);
for (std::vector<VerifyArgs>::const_iterator it = pending.begin(),
end = pending.end();
it != end; ++it) {
LocalStrikeRegisterClient::VerifyNonceIsValidAndUnique(it->nonce, it->now,
it->cb);
}
}
} // namespace test
} // namespace net