// Copyright 2014 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_DOMAIN_RELIABILITY_SCHEDULER_H_ #define COMPONENTS_DOMAIN_RELIABILITY_SCHEDULER_H_ #include <stddef.h> #include <memory> #include <vector> #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/time/time.h" #include "components/domain_reliability/domain_reliability_export.h" #include "components/domain_reliability/uploader.h" #include "net/base/backoff_entry.h" namespace domain_reliability { class MockableTime; // Determines when an upload should be scheduled. A domain's config will // specify minimum and maximum upload delays; the minimum upload delay ensures // that Chrome will not send too many upload requests to a site by waiting at // least that long after the first beacon, while the maximum upload delay makes // sure the server receives the reports while they are still fresh. // // When everything is working fine, the scheduler will return precisely that // interval. If all uploaders have failed, then the beginning or ending points // of the interval may be pushed later to accomodate the retry with exponential // backoff. // // See dispatcher.h for an explanation of what happens with the scheduled // interval. class DOMAIN_RELIABILITY_EXPORT DomainReliabilityScheduler { … }; } // namespace domain_reliability #endif // COMPONENTS_DOMAIN_RELIABILITY_SCHEDULER_H_