#ifndef NET_QUIC_CRYPTO_LOCAL_STRIKE_REGISTER_CLIENT_H_
#define NET_QUIC_CRYPTO_LOCAL_STRIKE_REGISTER_CLIENT_H_
#include "base/basictypes.h"
#include "base/strings/string_piece.h"
#include "base/synchronization/lock.h"
#include "net/base/net_export.h"
#include "net/quic/crypto/strike_register.h"
#include "net/quic/crypto/strike_register_client.h"
#include "net/quic/quic_time.h"
namespace net {
class NET_EXPORT_PRIVATE LocalStrikeRegisterClient
: public StrikeRegisterClient {
public:
LocalStrikeRegisterClient(unsigned max_entries,
uint32 current_time_external,
uint32 window_secs,
const uint8 orbit[8],
StrikeRegister::StartupType startup);
virtual bool IsKnownOrbit(base::StringPiece orbit) const OVERRIDE;
virtual void VerifyNonceIsValidAndUnique(base::StringPiece nonce,
QuicWallTime now,
ResultCallback* cb) OVERRIDE;
private:
mutable base::Lock m_;
StrikeRegister strike_register_;
DISALLOW_COPY_AND_ASSIGN(LocalStrikeRegisterClient);
};
}
#endif