diff options
author | Tycho Bickerstaff <work.tycho@gmail.com> | 2013-12-21 15:43:32 +0100 |
---|---|---|
committer | Tycho Bickerstaff <work.tycho@gmail.com> | 2013-12-21 15:43:32 +0100 |
commit | 14d2085e35bbc3e5c73c018e5c70e8093003820f (patch) | |
tree | c0522ff267bd19b22ddc11e2048bde48947f295b /src | |
parent | added FORCE_32 option (diff) | |
download | cuberite-14d2085e35bbc3e5c73c018e5c70e8093003820f.tar cuberite-14d2085e35bbc3e5c73c018e5c70e8093003820f.tar.gz cuberite-14d2085e35bbc3e5c73c018e5c70e8093003820f.tar.bz2 cuberite-14d2085e35bbc3e5c73c018e5c70e8093003820f.tar.lz cuberite-14d2085e35bbc3e5c73c018e5c70e8093003820f.tar.xz cuberite-14d2085e35bbc3e5c73c018e5c70e8093003820f.tar.zst cuberite-14d2085e35bbc3e5c73c018e5c70e8093003820f.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/OSSupport/Queue.h | 30 | ||||
-rw-r--r-- | src/OSSupport/Queue.inc | 4 |
2 files changed, 34 insertions, 0 deletions
diff --git a/src/OSSupport/Queue.h b/src/OSSupport/Queue.h new file mode 100644 index 000000000..838a101e0 --- /dev/null +++ b/src/OSSupport/Queue.h @@ -0,0 +1,30 @@ +#pragma once + +template<class T> +class cDeleter +{ + public: + static void Delete(T) {}; +} + +template<class T, class D = cDelete> +class cQueue +{ +public: + cQueue(int warnsize); + cQueue(cQueue<T>& queue); + ~cQueue(); + + void EnqueueItem(T item); + bool TryDequeueItem(T& item); + T DequeueItem(); + void BlockTillEmpty(cEvent CancelationEvent); + void Clear(); + int Size(); + +private: + int warnsize; +} + +//template classes must be implemented in the header +#include "Queue.inc" diff --git a/src/OSSupport/Queue.inc b/src/OSSupport/Queue.inc new file mode 100644 index 000000000..f172e9794 --- /dev/null +++ b/src/OSSupport/Queue.inc @@ -0,0 +1,4 @@ + +#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules + + |