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