00001 #ifndef LUX_DIST_MESSAGEQUEUE_H
00002 #define LUX_DIST_MESSAGEQUEUE_H
00003
00004 #include <deque>
00005
00006 namespace Lux {
00007 namespace Dist {
00008
00009 template <class Message>
00010 class MessageQueue {
00011 public:
00012 MessageQueue(void)
00013 {}
00014
00015 ~MessageQueue()
00016 {}
00017
00018 bool enqueue_message(Message &message)
00019 {
00020 queue_.push_back(message);
00021 }
00022
00023 Message dequeue_message(void)
00024 {
00025 Message m = queue_[0];
00026 queue_.pop_front();
00027 return m;
00028 }
00029
00030 bool is_queue_empty(void)
00031 {
00032 return queue_.empty();
00033 }
00034
00035 private:
00036 std::deque<Message> queue_;
00037 };
00038 }
00039 }
00040
00041 #endif