proxygen
folly::FunctionScheduler::RepeatFunc Struct Reference

Public Member Functions

 RepeatFunc (Function< void()> &&cback, IntervalDistributionFunc &&intervalFn, const std::string &nameID, const std::string &intervalDistDescription, std::chrono::milliseconds delay, bool once)
 
 RepeatFunc (Function< void()> &&cback, NextRunTimeFunc &&nextRunTimeFn, const std::string &nameID, const std::string &intervalDistDescription, std::chrono::milliseconds delay, bool once)
 
std::chrono::steady_clock::time_point getNextRunTime () const
 
void setNextRunTimeStrict (std::chrono::steady_clock::time_point curTime)
 
void setNextRunTimeSteady ()
 
void resetNextRunTime (std::chrono::steady_clock::time_point curTime)
 
void cancel ()
 
bool isValid () const
 

Static Public Member Functions

static NextRunTimeFunc getNextRunTimeFunc (IntervalDistributionFunc &&intervalFn)
 

Public Attributes

Function< void()> cb
 
NextRunTimeFunc nextRunTimeFunc
 
std::chrono::steady_clock::time_point nextRunTime
 
std::string name
 
std::chrono::milliseconds startDelay
 
std::string intervalDescr
 
bool runOnce
 

Detailed Description

Definition at line 237 of file FunctionScheduler.h.

Constructor & Destructor Documentation

folly::FunctionScheduler::RepeatFunc::RepeatFunc ( Function< void()> &&  cback,
IntervalDistributionFunc &&  intervalFn,
const std::string nameID,
const std::string intervalDistDescription,
std::chrono::milliseconds  delay,
bool  once 
)
inline

Definition at line 246 of file FunctionScheduler.h.

253  : RepeatFunc(
254  std::move(cback),
255  getNextRunTimeFunc(std::move(intervalFn)),
256  nameID,
257  intervalDistDescription,
258  delay,
259  once) {}
constexpr detail::Map< Move > move
Definition: Base-inl.h:2567
RepeatFunc(Function< void()> &&cback, IntervalDistributionFunc &&intervalFn, const std::string &nameID, const std::string &intervalDistDescription, std::chrono::milliseconds delay, bool once)
static NextRunTimeFunc getNextRunTimeFunc(IntervalDistributionFunc &&intervalFn)
folly::FunctionScheduler::RepeatFunc::RepeatFunc ( Function< void()> &&  cback,
NextRunTimeFunc &&  nextRunTimeFn,
const std::string nameID,
const std::string intervalDistDescription,
std::chrono::milliseconds  delay,
bool  once 
)
inline

Definition at line 261 of file FunctionScheduler.h.

268  : cb(std::move(cback)),
269  nextRunTimeFunc(std::move(nextRunTimeFn)),
270  nextRunTime(),
271  name(nameID),
272  startDelay(delay),
273  intervalDescr(intervalDistDescription),
274  runOnce(once) {}
std::chrono::milliseconds startDelay
constexpr detail::Map< Move > move
Definition: Base-inl.h:2567
std::chrono::steady_clock::time_point nextRunTime

Member Function Documentation

void folly::FunctionScheduler::RepeatFunc::cancel ( )
inline

Definition at line 297 of file FunctionScheduler.h.

Referenced by folly::FunctionScheduler::cancelFunction().

297  {
298  // Simply reset cb to an empty function.
299  cb = {};
300  }
std::chrono::steady_clock::time_point folly::FunctionScheduler::RepeatFunc::getNextRunTime ( ) const
inline

Definition at line 285 of file FunctionScheduler.h.

285  {
286  return nextRunTime;
287  }
std::chrono::steady_clock::time_point nextRunTime
static NextRunTimeFunc folly::FunctionScheduler::RepeatFunc::getNextRunTimeFunc ( IntervalDistributionFunc &&  intervalFn)
inlinestatic

Definition at line 276 of file FunctionScheduler.h.

References folly::gen::move.

277  {
278  return [intervalFn = std::move(intervalFn)](
279  std::chrono::steady_clock::time_point /* curNextRunTime */,
280  std::chrono::steady_clock::time_point curTime) mutable {
281  return curTime + intervalFn();
282  };
283  }
constexpr detail::Map< Move > move
Definition: Base-inl.h:2567
bool folly::FunctionScheduler::RepeatFunc::isValid ( ) const
inline

Definition at line 301 of file FunctionScheduler.h.

301  {
302  return bool(cb);
303  }
void folly::FunctionScheduler::RepeatFunc::resetNextRunTime ( std::chrono::steady_clock::time_point  curTime)
inline

Definition at line 294 of file FunctionScheduler.h.

294  {
295  nextRunTime = curTime + startDelay;
296  }
std::chrono::milliseconds startDelay
std::chrono::steady_clock::time_point nextRunTime
void folly::FunctionScheduler::RepeatFunc::setNextRunTimeSteady ( )
inline

Definition at line 291 of file FunctionScheduler.h.

291  {
293  }
std::chrono::steady_clock::time_point nextRunTime
void folly::FunctionScheduler::RepeatFunc::setNextRunTimeStrict ( std::chrono::steady_clock::time_point  curTime)
inline

Definition at line 288 of file FunctionScheduler.h.

288  {
290  }
std::chrono::steady_clock::time_point nextRunTime

Member Data Documentation

Function<void()> folly::FunctionScheduler::RepeatFunc::cb

Definition at line 238 of file FunctionScheduler.h.

std::string folly::FunctionScheduler::RepeatFunc::intervalDescr

Definition at line 243 of file FunctionScheduler.h.

std::string folly::FunctionScheduler::RepeatFunc::name

Definition at line 241 of file FunctionScheduler.h.

Referenced by folly::FunctionScheduler::cancelFunction().

std::chrono::steady_clock::time_point folly::FunctionScheduler::RepeatFunc::nextRunTime

Definition at line 240 of file FunctionScheduler.h.

NextRunTimeFunc folly::FunctionScheduler::RepeatFunc::nextRunTimeFunc

Definition at line 239 of file FunctionScheduler.h.

bool folly::FunctionScheduler::RepeatFunc::runOnce

Definition at line 244 of file FunctionScheduler.h.

std::chrono::milliseconds folly::FunctionScheduler::RepeatFunc::startDelay

Definition at line 242 of file FunctionScheduler.h.


The documentation for this struct was generated from the following file: