00001
00002
00003
00004
00005
00006
00007
00008 #ifndef SENDER_H_
00009 #define SENDER_H_
00010
00011 #include <boost/asio.hpp>
00012 #include <boost/thread.hpp>
00013 using boost::asio::ip::udp;
00014
00015 #include <deque>
00016
00017 #include <messages.h>
00018
00019 namespace FastEcslent {
00020
00021 class Engine;
00022
00023 class Sender {
00024 private:
00025
00026 boost::thread senderThread;
00027 udp::socket *socket;
00028 udp::endpoint myIP;;
00029 int port;
00030 bool isServer;
00031 void runThread();
00032 bool quit;
00033
00034 boost::posix_time::milliseconds *sleepTime;
00035 boost::mutex quitLock;
00036
00037
00038
00039
00040 public:
00041 std::deque<Message *> sendBuffer;
00042 Sender(udp::endpoint ip, int prt, bool isserv){
00043 myIP = ip;
00044 port = prt;
00045 isServer = isserv;
00046 }
00047 void init();
00048 void run();
00049 void join();
00050 void stop();
00051 void kill();
00052
00053
00054
00055 void addMessage(Message *);
00056 Message* dequeMessage();
00057 };
00058
00059 }
00060
00061 #endif