blob: 41621994783b3cf1e1f179ad4a1c484b4817d15e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
// NetworkLookup.h
// Declares the cNetworkLookup class representing an executor for asynchronous lookup tasks
#pragma once
#include <functional>
#include "IsThread.h"
#include "Queue.h"
class cNetworkLookup :
public cIsThread
{
public:
cNetworkLookup();
virtual ~cNetworkLookup() override;
/** Schedule a lookup task for execution. */
void ScheduleLookup(std::function<void()> a_Lookup);
/** Cancels any scheduled lookups and joins the lookup thread. */
void Stop();
protected:
/** Process the queue until the thread is stopped. */
virtual void Execute() override final;
private:
/** The queue of lookup tasks waiting to be executed. */
cQueue<std::function<void()>> m_WorkQueue;
};
|