// $Id: UdpPacketTcpServer.h 2716 2012-04-05 17:26:33Z matevz $ // Copyright (C) 1999-2008, Matevz Tadel. All rights reserved. // This file is part of GLED, released under GNU General Public License version 2. // For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/. #ifndef Net1_UdpPacketTcpServer_H #define Net1_UdpPacketTcpServer_H #include "Glasses/ZGlass.h" #include "Gled/GSelector.h" #include "Gled/GQueue.h" class ZLog; class UdpPacketSource; class SUdpPacket; class GThread; class SServerSocket; class SSocket; class UdpPacketTcpServer : public ZGlass { MAC_RNR_FRIENDS(UdpPacketTcpServer); private: void _init(); protected: ZLink mLog; // X{GS} L{} ZLink mSource; // X{GS} L{} GQueue mUdpQueue; //! //-------------------------------- Int_t mServPort; // X{GS} 7 Value() GSelector mSelector; //! GThread *mServThread; //! SServerSocket *mServSocket; //! list mClients; //! static void* tl_Serve(UdpPacketTcpServer* s); void Serve(); void AddClient(SSocket* cs); void RemoveClient(SSocket* cs); void RemoveClient(list::iterator sli); //-------------------------------- GThread *mDeliThread; //! static void* tl_Deliver(UdpPacketTcpServer* s); void Deliver(); public: UdpPacketTcpServer(const Text_t* n="UdpPacketTcpServer", const Text_t* t=0); virtual ~UdpPacketTcpServer(); void StartAllServices(); // X{Ed} 7 MButt() void StopAllServices(); // X{Ed} 7 MButt() #include "UdpPacketTcpServer.h7" ClassDef(UdpPacketTcpServer, 1); }; // endclass UdpPacketTcpServer #endif