text: // Copyright 2015 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.
  
  #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_AFFILIATION_FETCH_THROTTLER_DELEGATE_H_
  #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_AFFILIATION_FETCH_THROTTLER_DELEGATE_H_
  
  namespace password_manager {
  
  // An interface that users of AffiliationFetchThrottler need to implement to get
  // notified once it is okay to issue the next network request.
  class AffiliationFetchThrottlerDelegate {
   public:
    // Will be called once the throttling policy allows issuing a network request,
    // provided SignalNetworkRequestNeeded() has been called at least once since
    // the last request.
    //
    // The implementation must return true if a request was actually issued in
    // response to this call, and then call InformOfNetworkRequestComplete() once
    // the request is complete. Otherwise, the implementation must return false.
    virtual bool OnCanSendNetworkRequest() = 0;
  
   protected:
    virtual ~AffiliationFetchThrottlerDelegate() {}
  };
  
  }  // namespace password_manager
  
  #endif  // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_AFFILIATION_FETCH_THROTTLER_DELEGATE_H_
  