Logo
~Sockets~
~Examples~
~Contact~


EventHandler.h

Go to the documentation of this file.
00001 
00005 /*
00006 Copyright (C) 2005,2007  Anders Hedstrom
00007 
00008 This library is made available under the terms of the GNU GPL.
00009 
00010 If you would like to use this library in a closed-source application,
00011 a separate license agreement is available. For information about 
00012 the closed-source license agreement for the C++ sockets library,
00013 please visit http://www.alhem.net/Sockets/license.html and/or
00014 email license@alhem.net.
00015 
00016 This program is free software; you can redistribute it and/or
00017 modify it under the terms of the GNU General Public License
00018 as published by the Free Software Foundation; either version 2
00019 of the License, or (at your option) any later version.
00020 
00021 This program is distributed in the hope that it will be useful,
00022 but WITHOUT ANY WARRANTY; without even the implied warranty of
00023 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00024 GNU General Public License for more details.
00025 
00026 You should have received a copy of the GNU General Public License
00027 along with this program; if not, write to the Free Software
00028 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00029 */
00030 #ifndef _SOCKETS_EventHandler_H
00031 #define _SOCKETS_EventHandler_H
00032 
00033 #include "sockets-config.h"
00034 #include "SocketHandler.h"
00035 #include "IEventHandler.h"
00036 
00037 #ifdef SOCKETS_NAMESPACE
00038 namespace SOCKETS_NAMESPACE {
00039 #endif
00040 
00041 
00042 class StdLog;
00043 class IEventOwner;
00044 class Event;
00045 class TcpSocket;
00046 
00049 class EventHandler : public SocketHandler,public IEventHandler
00050 {
00051 public:
00052         EventHandler(StdLog * = NULL);
00053         EventHandler(Mutex&,StdLog * = NULL);
00054         ~EventHandler();
00055 
00056         bool GetTimeUntilNextEvent(struct timeval *tv);
00057         void CheckEvents();
00058         long AddEvent(IEventOwner *from,long sec,long usec);
00059         void ClearEvents(IEventOwner *from);
00060         void RemoveEvent(IEventOwner *from,long eid);
00061 
00063         void EventLoop();
00065         void SetQuit(bool = true);
00066 
00067         void Add(Socket *);
00068 
00069 private:
00070         EventHandler(const EventHandler& ) {} // copy constructor
00071         EventHandler& operator=(const EventHandler& ) { return *this; } // assignment operator
00072         std::list<Event *> m_events;
00073         bool m_quit;
00074         TcpSocket *m_socket;
00075         port_t m_port;
00076 };
00077 
00078 
00079 
00080 #ifdef SOCKETS_NAMESPACE
00081 }
00082 #endif
00083 
00084 #endif // _SOCKETS_EventHandler_H
Page, code, and content Copyright (C) 2007 by Anders Hedström
Generated for C++ Sockets by  doxygen 1.4.4