root/net/quic/test_tools/delayed_verify_strike_register_client.cc

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. delay_verifications_
  2. VerifyNonceIsValidAndUnique
  3. PendingVerifications
  4. RunPendingVerifications

// 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.as_string(), now, cb));
  } else {
    LocalStrikeRegisterClient::VerifyNonceIsValidAndUnique(nonce, now, cb);
  }
}

int DelayedVerifyStrikeRegisterClient::PendingVerifications() const {
  return pending_verifications_.size();
}

void DelayedVerifyStrikeRegisterClient::RunPendingVerifications() {
  vector<VerifyArgs> pending;
  pending_verifications_.swap(pending);
  for (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

/* [<][>][^][v][top][bottom][index][help] */