LeechCraft
0.6.70-18450-gabe19ee3b0
Modular cross-platform feature rich live environment.
Toggle main menu visibility
Loading...
Searching...
No Matches
queuemanager.h
Go to the documentation of this file.
1
/**********************************************************************
2
* LeechCraft - modular cross-platform feature rich internet client.
3
* Copyright (C) 2006-2014 Georg Rudoy
4
*
5
* Distributed under the Boost Software License, Version 1.0.
6
* (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7
**********************************************************************/
8
9
#pragma once
10
11
#include <functional>
12
#include <optional>
13
#include <QObject>
14
#include <QDateTime>
15
#include <QPointer>
16
#include <QPair>
17
#include "
sllconfig.h
"
18
19
class
QTimer;
20
21
namespace
LC
22
{
23
namespace
Util
24
{
27
enum class
QueuePriority
28
{
31
Normal
,
32
35
High
36
};
37
43
class
UTIL_SLL_API
QueueManager
:
public
QObject
44
{
45
Q_OBJECT
46
47
const
int
Timeout_;
48
QTimer *
const
ReqTimer_;
49
QDateTime LastRequest_;
50
51
bool
Paused_;
52
53
typedef
std::optional<QPointer<QObject>> OptionalTracker_t;
54
QList
<QPair<std::function<void ()>, std::optional<QPointer<QObject>>>> Queue_;
55
public
:
62
QueueManager
(
int
timeout, QObject *parent =
nullptr
);
63
81
void
Schedule
(std::function<
void
()> functor,
82
QObject *dependent =
nullptr
,
83
QueuePriority
prio =
QueuePriority::Normal
);
84
90
void
Clear
();
91
98
void
Pause
();
99
106
bool
IsPaused
()
const
;
107
114
void
Resume
();
115
private
slots:
116
void
exec ();
117
};
118
}
119
}
LC::Util::QueueManager::Resume
void Resume()
Continues the queue rotation.
Definition
queuemanager.cpp:61
LC::Util::QueueManager::IsPaused
bool IsPaused() const
Checks if the queue is paused.
Definition
queuemanager.cpp:56
LC::Util::QueueManager::Clear
void Clear()
Clears the queue.
Definition
queuemanager.cpp:45
LC::Util::QueueManager::Pause
void Pause()
Pauses the queue rotation.
Definition
queuemanager.cpp:50
LC::Util::QueueManager::Schedule
void Schedule(std::function< void()> functor, QObject *dependent=nullptr, QueuePriority prio=QueuePriority::Normal)
Adds the given functor.
Definition
queuemanager.cpp:29
LC::Util::QueueManager::QueueManager
QueueManager(int timeout, QObject *parent=nullptr)
Creates a queue manager with the given timeout.
Definition
queuemanager.cpp:16
QList
Definition
ianrulesstorage.h:14
LC::Util
Definition
icoreproxy.h:34
LC::Util::QueuePriority
QueuePriority
The priority of the action in the queue.
Definition
queuemanager.h:28
LC::Util::QueuePriority::High
@ High
Higher priority.
Definition
queuemanager.h:35
LC::Util::QueuePriority::Normal
@ Normal
Standard priority.
Definition
queuemanager.h:31
LC
Definition
constants.h:15
sllconfig.h
UTIL_SLL_API
#define UTIL_SLL_API
Definition
sllconfig.h:16
src
util
sll
queuemanager.h
Generated by
1.17.0