folly/folly/executors/FunctionScheduler.cpp

/*
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include <folly/executors/FunctionScheduler.h>

#include <random>

#include <glog/logging.h>

#include <folly/Conv.h>
#include <folly/Random.h>
#include <folly/String.h>
#include <folly/system/ThreadName.h>

microseconds;
steady_clock;

namespace folly {

namespace {

struct ConsistentDelayFunctor {};

struct ConstIntervalFunctor {};

struct PoissonDistributionFunctor {};

struct UniformDistributionFunctor {};

} // namespace

FunctionScheduler::FunctionScheduler() = default;

FunctionScheduler::~FunctionScheduler() {}

void FunctionScheduler::addFunction(
    Function<void()>&& cb,
    microseconds interval,
    StringPiece nameID,
    microseconds startDelay) {}

void FunctionScheduler::addFunction(
    Function<void()>&& cb,
    microseconds interval,
    const LatencyDistribution& latencyDistr,
    StringPiece nameID,
    microseconds startDelay) {}

void FunctionScheduler::addFunctionOnce(
    Function<void()>&& cb, StringPiece nameID, microseconds startDelay) {}

void FunctionScheduler::addFunctionUniformDistribution(
    Function<void()>&& cb,
    microseconds minInterval,
    microseconds maxInterval,
    StringPiece nameID,
    microseconds startDelay) {}

void FunctionScheduler::addFunctionConsistentDelay(
    Function<void()>&& cb,
    microseconds interval,
    StringPiece nameID,
    microseconds startDelay) {}

void FunctionScheduler::addFunctionGenericDistribution(
    Function<void()>&& cb,
    IntervalDistributionFunc&& intervalFunc,
    const std::string& nameID,
    const std::string& intervalDescr,
    microseconds startDelay) {}

void FunctionScheduler::addFunctionGenericNextRunTimeFunctor(
    Function<void()>&& cb,
    NextRunTimeFunc&& fn,
    const std::string& nameID,
    const std::string& intervalDescr,
    microseconds startDelay) {}

template <typename RepeatFuncNextRunTimeFunc>
void FunctionScheduler::addFunctionToHeapChecked(
    Function<void()>&& cb,
    RepeatFuncNextRunTimeFunc&& fn,
    const std::string& nameID,
    const std::string& intervalDescr,
    microseconds startDelay,
    bool runOnce) {}

void FunctionScheduler::addFunctionInternal(
    Function<void()>&& cb,
    NextRunTimeFunc&& fn,
    const std::string& nameID,
    const std::string& intervalDescr,
    microseconds startDelay,
    bool runOnce) {}

void FunctionScheduler::addFunctionInternal(
    Function<void()>&& cb,
    IntervalDistributionFunc&& fn,
    const std::string& nameID,
    const std::string& intervalDescr,
    microseconds startDelay,
    bool runOnce) {}

bool FunctionScheduler::cancelFunctionWithLock(
    std::unique_lock<std::mutex>& lock, StringPiece nameID) {}

bool FunctionScheduler::cancelFunction(StringPiece nameID) {}

bool FunctionScheduler::cancelFunctionAndWait(StringPiece nameID) {}

void FunctionScheduler::cancelFunction(
    const std::unique_lock<std::mutex>& l, RepeatFunc* it) {}

bool FunctionScheduler::cancelAllFunctionsWithLock(
    std::unique_lock<std::mutex>& lock) {}

void FunctionScheduler::cancelAllFunctions() {}

void FunctionScheduler::cancelAllFunctionsAndWait() {}

bool FunctionScheduler::resetFunctionTimer(StringPiece nameID) {}

bool FunctionScheduler::start() {}

bool FunctionScheduler::shutdown() {}

void FunctionScheduler::run() {}

void FunctionScheduler::runOneFunction(
    std::unique_lock<std::mutex>& lock, steady_clock::time_point now) {}

void FunctionScheduler::addFunctionToHeap(
    const std::unique_lock<std::mutex>& lock,
    std::unique_ptr<RepeatFunc> func) {}

void FunctionScheduler::setThreadName(StringPiece threadName) {}

} // namespace folly