Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
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
13
class
DelayTask
14
{
15
public
:
16
virtual
~DelayTask
() { }
17
virtual
int
call
() = 0;
18
};
19
20
struct
DelayExecutorMetricsSnapshot
21
{
22
DelayExecutorMetricsSnapshot
()
23
:
Submitted
(0),
Completed
(0),
Rejected
(0),
Backlog
(0),
BacklogHighWater
(0),
BacklogHighWaterEvents
(0) { }
24
25
uint64
Submitted
;
26
uint64
Completed
;
27
uint64
Rejected
;
28
uint32
Backlog
;
29
uint32
BacklogHighWater
;
30
uint64
BacklogHighWaterEvents
;
31
};
32
33
class
DelayExecutor
34
{
35
public
:
36
DelayExecutor
();
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
();
44
DelayExecutorMetricsSnapshot
GetMetricsSnapshot
()
const
;
45
void
ResetMetrics
();
46
47
private
:
48
struct
Impl
;
49
50
std::unique_ptr<Impl>
impl_
;
51
52
void
activated
(
bool
s);
53
};
54
55
#endif
// _M_DELAY_EXECUTOR_H
Define.h
uint32
std::uint32_t uint32
Definition
Define.h:77
uint64
std::uint64_t uint64
Definition
Define.h:76
DelayExecutor::ResetMetrics
void ResetMetrics()
Definition
DelayExecutor.cpp:193
DelayExecutor::~DelayExecutor
virtual ~DelayExecutor()
Definition
DelayExecutor.cpp:62
DelayExecutor::DelayExecutor
DelayExecutor()
Definition
DelayExecutor.cpp:59
DelayExecutor::activated
bool activated()
Definition
DelayExecutor.cpp:168
DelayExecutor::svc
int svc()
Definition
DelayExecutor.cpp:86
DelayExecutor::GetMetricsSnapshot
DelayExecutorMetricsSnapshot GetMetricsSnapshot() const
Definition
DelayExecutor.cpp:180
DelayExecutor::start
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 >())
Definition
DelayExecutor.cpp:99
DelayExecutor::execute
int execute(std::unique_ptr< DelayTask > new_req)
Definition
DelayExecutor.cpp:134
DelayExecutor::deactivate
int deactivate()
Definition
DelayExecutor.cpp:67
DelayExecutor::instance
static DelayExecutor * instance()
Definition
DelayExecutor.cpp:54
DelayExecutor::impl_
std::unique_ptr< Impl > impl_
Definition
DelayExecutor.h:50
DelayTask
Definition
DelayExecutor.h:14
DelayTask::~DelayTask
virtual ~DelayTask()
Definition
DelayExecutor.h:16
DelayTask::call
virtual int call()=0
DelayExecutor::Impl
Definition
DelayExecutor.cpp:29
DelayExecutorMetricsSnapshot
Definition
DelayExecutor.h:21
DelayExecutorMetricsSnapshot::Completed
uint64 Completed
Definition
DelayExecutor.h:26
DelayExecutorMetricsSnapshot::Submitted
uint64 Submitted
Definition
DelayExecutor.h:25
DelayExecutorMetricsSnapshot::DelayExecutorMetricsSnapshot
DelayExecutorMetricsSnapshot()
Definition
DelayExecutor.h:22
DelayExecutorMetricsSnapshot::Backlog
uint32 Backlog
Definition
DelayExecutor.h:28
DelayExecutorMetricsSnapshot::BacklogHighWater
uint32 BacklogHighWater
Definition
DelayExecutor.h:29
DelayExecutorMetricsSnapshot::BacklogHighWaterEvents
uint64 BacklogHighWaterEvents
Definition
DelayExecutor.h:30
DelayExecutorMetricsSnapshot::Rejected
uint64 Rejected
Definition
DelayExecutor.h:27
src
server
shared
Threading
DelayExecutor.h
Generated on
for Project SkyFire Core by
1.17.0