Mercurial > hg > orthanc
comparison Core/MultiThreading/SharedMessageQueue.h @ 1023:226cfef3822e templating
integration mainline->templating
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 10 Jul 2014 11:42:32 +0200 |
parents | 8c67382f44a7 |
children | 7266c37d0354 |
comparison
equal
deleted
inserted
replaced
945:427a1f996b7b | 1023:226cfef3822e |
---|---|
38 #include <list> | 38 #include <list> |
39 #include <boost/thread.hpp> | 39 #include <boost/thread.hpp> |
40 | 40 |
41 namespace Orthanc | 41 namespace Orthanc |
42 { | 42 { |
43 class SharedMessageQueue | 43 class SharedMessageQueue : public boost::noncopyable |
44 { | 44 { |
45 private: | 45 private: |
46 typedef std::list<IDynamicObject*> Queue; | 46 typedef std::list<IDynamicObject*> Queue; |
47 | 47 |
48 unsigned int maxSize_; | 48 unsigned int maxSize_; |
50 boost::mutex mutex_; | 50 boost::mutex mutex_; |
51 boost::condition_variable elementAvailable_; | 51 boost::condition_variable elementAvailable_; |
52 boost::condition_variable emptied_; | 52 boost::condition_variable emptied_; |
53 | 53 |
54 public: | 54 public: |
55 SharedMessageQueue(unsigned int maxSize = 0); | 55 explicit SharedMessageQueue(unsigned int maxSize = 0); |
56 | 56 |
57 ~SharedMessageQueue(); | 57 ~SharedMessageQueue(); |
58 | 58 |
59 // This transfers the ownership of the message | 59 // This transfers the ownership of the message |
60 void Enqueue(IDynamicObject* message); | 60 void Enqueue(IDynamicObject* message); |
61 | 61 |