diff options
author | Alexander Harkness <bearbin@gmail.com> | 2014-01-01 19:15:21 +0100 |
---|---|---|
committer | Alexander Harkness <bearbin@gmail.com> | 2014-01-01 19:15:21 +0100 |
commit | bb0d43f70e41f7182e740e36bb719a28dddf7855 (patch) | |
tree | f1fd5c77ebf7ccb130700a97fe7c9c8c02d411b5 /src/OSSupport | |
parent | Merge branch 'FishingHook' (diff) | |
parent | merged changes from upstream (diff) | |
download | cuberite-bb0d43f70e41f7182e740e36bb719a28dddf7855.tar cuberite-bb0d43f70e41f7182e740e36bb719a28dddf7855.tar.gz cuberite-bb0d43f70e41f7182e740e36bb719a28dddf7855.tar.bz2 cuberite-bb0d43f70e41f7182e740e36bb719a28dddf7855.tar.lz cuberite-bb0d43f70e41f7182e740e36bb719a28dddf7855.tar.xz cuberite-bb0d43f70e41f7182e740e36bb719a28dddf7855.tar.zst cuberite-bb0d43f70e41f7182e740e36bb719a28dddf7855.zip |
Diffstat (limited to 'src/OSSupport')
-rw-r--r-- | src/OSSupport/Queue.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/OSSupport/Queue.h b/src/OSSupport/Queue.h new file mode 100644 index 000000000..4571272b3 --- /dev/null +++ b/src/OSSupport/Queue.h @@ -0,0 +1,31 @@ +#pragma once + +template<class T> +class cDeleter +{ + public: + static void Delete(T) {}; +}; + +template<class T, class D = cDeleter<T>> +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; + std::list<T> contents; +}; + +//template classes must be implemented in the header +#include "Queue.inc" |