// 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; using std::vector; namespace net { namespace test { DelayedVerifyStrikeRegisterClient::DelayedVerifyStrikeRegisterClient( unsigned max_entries, uint32 current_time_external, uint32 window_secs, const uint8 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() { vector pending; pending_verifications_.swap(pending); for (vector::const_iterator it = pending.begin(), end = pending.end(); it != end; ++it) { LocalStrikeRegisterClient::VerifyNonceIsValidAndUnique( it->nonce, it->now, it->cb); } } } // namespace test } // namespace net