00001 #ifndef __PRIORITYPACKETQUEUE_H 00002 #define __PRIORITYPACKETQUEUE_H 00003 00004 #include "PacketInfo.h" 00005 #include "ThreadMessageQueue.h" 00006 00007 class PriorityPacketQueue { 00008 public: 00009 PriorityPacketQueue(); 00010 ~PriorityPacketQueue(); 00011 00012 void getNext(Node** fromNode, NpPacket** packet); 00013 void add(Node* fromNode, NpPacket* packet); 00014 bool isEmpty(); 00015 void print(std::ostream&); 00016 00017 private: 00018 ThreadMessageQueue<PacketInfo>* m_controlQueue; 00019 ThreadMessageQueue<PacketInfo>* m_dataQueue; 00020 00021 Condition m_ready; 00022 Mutex m_lock; 00023 00024 bool m_dead; 00025 }; 00026 00027 #endif