Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
DelayExecutor.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef _M_DELAY_EXECUTOR_H
7#define _M_DELAY_EXECUTOR_H
8
9#include "Define.h"
10
11#include <memory>
12
14{
15public:
16 virtual ~DelayTask() { }
17 virtual int call() = 0;
18};
19
32
34{
35public:
37 virtual ~DelayExecutor();
38 static DelayExecutor* instance();
39 int execute(std::unique_ptr<DelayTask> new_req);
40 int start(int num_threads = 1, std::unique_ptr<DelayTask> pre_svc_hook = std::unique_ptr<DelayTask>(), std::unique_ptr<DelayTask> post_svc_hook = std::unique_ptr<DelayTask>());
41 int deactivate();
42 bool activated();
43 int svc();
45 void ResetMetrics();
46
47private:
48 struct Impl;
49
50 std::unique_ptr<Impl> impl_;
51
52 void activated(bool s);
53};
54
55#endif // _M_DELAY_EXECUTOR_H
std::uint32_t uint32
Definition Define.h:77
std::uint64_t uint64
Definition Define.h:76
virtual ~DelayExecutor()
DelayExecutorMetricsSnapshot GetMetricsSnapshot() const
int start(int num_threads=1, std::unique_ptr< DelayTask > pre_svc_hook=std::unique_ptr< DelayTask >(), std::unique_ptr< DelayTask > post_svc_hook=std::unique_ptr< DelayTask >())
int execute(std::unique_ptr< DelayTask > new_req)
static DelayExecutor * instance()
std::unique_ptr< Impl > impl_
virtual ~DelayTask()
virtual int call()=0