00001 #ifndef _SENDQUEUE_H__ 00002 #define _SENDQUEUE_H__ 00003 00004 #include <gea/Time.h> 00005 #include <awds/BasePacket.h> 00006 #include <awds/basic.h> 00007 #include <list> 00008 00009 namespace awds { 00010 class SendQueue { 00011 gea::Handle *h; 00012 basic *base; 00013 typedef std::list<BasePacket*> PacketQueue; 00014 PacketQueue queue; 00015 bool verbose; 00016 public: 00017 00018 SendQueue(basic *_b, gea::Handle *_h) : 00019 h(_h), 00020 base(_b), 00021 verbose(false) 00022 { 00023 } 00024 00025 bool enqueuePacket(BasePacket *p, bool high_prio); 00026 00027 private: 00028 00029 static void xmit_cb(gea::Handle *h, gea::AbsTime t, void *data); 00030 void registerCallback(); 00031 }; 00032 00033 00034 } 00035 #endif // _SENDQUEUE_H__ 00036