From 7ec2d1c53b753238509bf7a89587509305b9216d Mon Sep 17 00:00:00 2001 From: Othmar Gsenger Date: Sun, 19 Oct 2008 20:06:14 +0000 Subject: move to asio socket libary for sync bugs / todos: * new connections don't sync * anyrtpproxy broken * anytun-controlld doesn't send data --- src/Sockets/tests/events.cpp | 212 ------------------------------------------- 1 file changed, 212 deletions(-) delete mode 100644 src/Sockets/tests/events.cpp (limited to 'src/Sockets/tests/events.cpp') diff --git a/src/Sockets/tests/events.cpp b/src/Sockets/tests/events.cpp deleted file mode 100644 index 5d08973..0000000 --- a/src/Sockets/tests/events.cpp +++ /dev/null @@ -1,212 +0,0 @@ -#include -#include -#include -#include -#include -#include - - -double start; - -double gettime() -{ - struct timeval tv; - Utility::GetTime(&tv); - return tv.tv_sec + (double)tv.tv_usec / 1000000; -} - - -class MyEvHandler : public EventHandler -{ -public: - MyEvHandler() : EventHandler() {} - MyEvHandler(StdLog *p) : EventHandler(p) {} - -}; - - -class EvThread : public Thread -{ -public: - EvThread(Socket *p) : m_socket(p) {} - - void Run(); - -private: - Socket *m_socket; -}; - - -class EvSocket : public TcpSocket, public IEventOwner -{ -public: - EvSocket(ISocketHandler& h) : TcpSocket(h) - , IEventOwner( static_cast(h) ) { - } - - void OnEvent(int id) { - std::cout << "OnEvent" << std::endl; - std::cout << gettime() - start << std::endl; - SetCloseAndDelete(); - } - - void OnAccept() { - std::cout << "Incoming" << std::endl; - } - - void OnConnect() { - std::cout << "Connected" << std::endl; - EvThread *thr = new EvThread( this ); - thr -> SetDeleteOnExit(); - } - - void OnDelete() { - std::cout << "EvSocket::OnDelete()" << std::endl; - } -}; - - -void EvThread::Run() -{ - Socket *p0 = (Socket *)m_socket; - EvSocket *p = dynamic_cast(p0); - if (p) - { -#ifdef _WIN32 - Sleep( 5000 ); -#else - sleep(10); -#endif - std::cout << "Add event" << std::endl; - start = gettime(); - p -> AddEvent(1, 50000); - } - else - { - std::cout << "Thread: not an EvSocket" << std::endl; - } -} - - -//------------------------------------------------------------ -// myTimer class -//------------------------------------------------------------ -class myTimer : public IEventOwner -{ -public: - // Prototype of user call back function - typedef void (*myTimer_cb)(myTimer* user_func, void* user_id); - - myTimer(IEventHandler& h, long ssec, long susec, - long psec, long pusec, myTimer_cb func, void* id); - ~myTimer(); - -private: - void OnEvent(int id); - long ssec_; - long susec_; - long psec_; - long pusec_; - myTimer_cb user_func_; - void* user_id_; - bool periodic_; -}; - - -//------------------------------------------------------------ -myTimer::myTimer(IEventHandler& h, long ssec, long susec, - long psec, long pusec, myTimer_cb user_func, - void* user_id) : - IEventOwner(h), - ssec_(ssec), - susec_(susec), - psec_(psec), - pusec_(pusec), - user_func_(user_func), - user_id_(user_id), - periodic_(psec != 0 || pusec != 0) -{ - AddEvent(ssec_, susec_); -} - - -//------------------------------------------------------------ -myTimer::~myTimer() -{ - ClearEvents(); -} - - -//------------------------------------------------------------ -void myTimer::OnEvent(int id) -{ - if (periodic_) - { - int n = AddEvent(psec_, pusec_); - } - - user_func_(this, user_id_); - - if (!periodic_) - { - delete this; - } -} - - -//------------------------------------------------------------ -static void myfunc(myTimer* t, void* user_id) -{ - printf("Event %s\n", (char*)user_id); -} - - -/* -int main(int argc, char *argv[]) -{ - EventHandler h; - - // Example 1: Create a 2 sec one-shot timer. - // No need to save the pointer as it will delete - // itself upon expiry. - new myTimer(h, 2, 0, 0, 0, myfunc, (void*)"My Timer 0"); - - // Example 2: Create a 1 sec periodic timer. - // Save the pointer because we can stop the timer - // later with a "delete mytimer". - myTimer* mytimer = new myTimer(h, 0, 0, 1, 0, myfunc, - (void*)"My Timer 1"); - - // Drop into the event handler .. - h.EventLoop(); -} -*/ - - -int main(int argc, char *argv[]) -{ - StdoutLog log; - MyEvHandler h(&log); - ListenSocket l(h); - l.Bind("localhost", 12344); - h.Add(&l); - - EvSocket sock(h); - sock.Open("localhost", 12344); - h.Add(&sock); - - // Example 1: Create a 2 sec one-shot timer. - // No need to save the pointer as it will delete - // itself upon expiry. - new myTimer(h, 2, 0, 0, 0, myfunc, (void*)"My Timer 0"); - - // Example 2: Create a 1 sec periodic timer. - // Save the pointer because we can stop the timer - // later with a "delete mytimer". - myTimer* mytimer = new myTimer(h, 0, 0, 1, 0, myfunc, - (void*)"My Timer 1"); - - h.EventLoop(); -} - - -- cgit v1.2.3