#include <folly/io/async/HHWheelTimer.h>
#include <cassert>
#include <folly/Memory.h>
#include <folly/Optional.h>
#include <folly/ScopeGuard.h>
#include <folly/container/BitIterator.h>
#include <folly/io/async/Request.h>
#include <folly/lang/Bits.h>
namespace folly {
template <class Duration>
int HHWheelTimerBase<Duration>::DEFAULT_TICK_INTERVAL = …;
template <class Duration>
HHWheelTimerBase<Duration>::Callback::Callback() = default;
template <class Duration>
HHWheelTimerBase<Duration>::Callback::~Callback() { … }
template <class Duration>
void HHWheelTimerBase<Duration>::Callback::setScheduled(
HHWheelTimerBase* wheel, std::chrono::steady_clock::time_point deadline) { … }
template <class Duration>
void HHWheelTimerBase<Duration>::Callback::cancelTimeoutImpl() { … }
template <class Duration>
HHWheelTimerBase<Duration>::HHWheelTimerBase(
folly::TimeoutManager* timeoutMananger,
Duration intervalDuration,
AsyncTimeout::InternalEnum internal,
Duration defaultTimeoutDuration)
: … { … }
template <class Duration>
HHWheelTimerBase<Duration>::~HHWheelTimerBase() { … }
template <class Duration>
void HHWheelTimerBase<Duration>::scheduleTimeoutImpl(
Callback* callback,
int64_t dueTick,
int64_t nextTickToProcess,
int64_t nextTick) { … }
template <class Duration>
void HHWheelTimerBase<Duration>::scheduleTimeout(
Callback* callback, Duration timeout) { … }
template <class Duration>
void HHWheelTimerBase<Duration>::scheduleTimeout(Callback* callback) { … }
template <class Duration>
bool HHWheelTimerBase<Duration>::cascadeTimers(
int bucket, int tick, const std::chrono::steady_clock::time_point curTime) { … }
template <class Duration>
void HHWheelTimerBase<Duration>::scheduleTimeoutInternal(Duration timeout) { … }
template <class Duration>
void HHWheelTimerBase<Duration>::timeoutExpired() noexcept { … }
template <class Duration>
size_t HHWheelTimerBase<Duration>::cancelAll() { … }
template <class Duration>
void HHWheelTimerBase<Duration>::scheduleNextTimeout(int64_t nextTick) { … }
template <class Duration>
void HHWheelTimerBase<Duration>::scheduleNextTimeout(
int64_t nextTick, int64_t ticks) { … }
template <class Duration>
size_t HHWheelTimerBase<Duration>::cancelTimeoutsFromList(
CallbackList& timeouts) { … }
template <class Duration>
int64_t HHWheelTimerBase<Duration>::calcNextTick() { … }
template <class Duration>
int64_t HHWheelTimerBase<Duration>::calcNextTick(
std::chrono::steady_clock::time_point curTime) { … }
template <>
void HHWheelTimerBase<std::chrono::microseconds>::scheduleTimeoutInternal(
std::chrono::microseconds timeout) { … }
template class HHWheelTimerBase<std::chrono::milliseconds>;
template class HHWheelTimerBase<std::chrono::microseconds>;
}