00001 /* -*- Mode: C++ -*- 00002 * Worldvisions Weaver Software: 00003 * Copyright (C) 1997-2002 Net Integration Technologies, Inc. 00004 * 00005 * WvStream-based TCP connection and server classes. 00006 */ 00007 #ifndef __WVTCPLISTENER_H 00008 #define __WVTCPLISTENER_H 00009 00010 #include "wvlistener.h" 00011 #include "wvaddr.h" 00012 00013 class WvIStreamList; 00014 00016 class WvTCPListener : public WvListener 00017 { 00018 public: 00023 WvTCPListener(const WvIPPortAddr &_listenport); 00024 00025 virtual ~WvTCPListener(); 00026 00033 virtual IWvStream *accept(); 00034 00036 virtual const WvIPPortAddr *src() const; 00037 00038 protected: 00039 WvIPPortAddr listenport; 00040 void accept_callback(WvIStreamList *list, 00041 wv::function<void(IWvStream*)> cb, 00042 IWvStream *_connection); 00043 00044 public: 00045 const char *wstype() const { return "WvTCPListener"; } 00046 }; 00047 00048 00049 #endif // __WVTCP_H