diff options
author | peterbell10 <peterbell10@live.co.uk> | 2017-06-15 11:03:49 +0200 |
---|---|---|
committer | Lukas Pioch <lukas@zgow.de> | 2017-06-15 11:03:49 +0200 |
commit | 035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1 (patch) | |
tree | b6caede9a35093d3e59c57c8c8c7295dc1c8fbaf /src/OSSupport/NetworkLookup.h | |
parent | Added missing 1.12 packet changes (diff) | |
download | cuberite-035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1.tar cuberite-035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1.tar.gz cuberite-035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1.tar.bz2 cuberite-035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1.tar.lz cuberite-035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1.tar.xz cuberite-035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1.tar.zst cuberite-035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1.zip |
Diffstat (limited to 'src/OSSupport/NetworkLookup.h')
-rw-r--r-- | src/OSSupport/NetworkLookup.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/OSSupport/NetworkLookup.h b/src/OSSupport/NetworkLookup.h new file mode 100644 index 000000000..e09062f4d --- /dev/null +++ b/src/OSSupport/NetworkLookup.h @@ -0,0 +1,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(); + ~cNetworkLookup(); + + /** 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; +}; + + |