00001 #ifndef __BASEINCOMINGSET_H__
00002 #define __BASEINCOMINGSET_H__
00003
00004 #include <list>
00005 #include "socket_base.h"
00006
00007 enum CloseState
00008 {
00009 ConnectionDoNotClose,
00010 ConnectionDoClose
00011 };
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 template < class _INCLASS1,class _IN_LISTEN, class MESSAGE_READER_BUF, class MESSAGE_READER_UPPASS> class BaseIncomingSet : public std::list<_INCLASS1 *>
00029 {
00030 typedef std::list<_INCLASS1 *> BaseClass;
00031 typedef TYPENAME BaseClass::iterator iterator;
00032 _IN_LISTEN _Listener;
00033
00034 inline void AddFromListener(void);
00035 inline int PumpReader(Time_Clock ¤tTime);
00036 inline void AddAConection(_INCLASS1 * newt);
00037
00038 public:
00039
00040
00041
00042
00043 inline BaseIncomingSet(void);
00044 inline BaseIncomingSet(BaseIncomingSet &in);
00045 virtual ~BaseIncomingSet();
00046
00047 inline _IN_LISTEN & GetListener(void);
00048 inline bool init(Socket_Address &WhereFrom);
00049 inline void PumpAll(Time_Clock ¤tTime);
00050 virtual CloseState ProcessNewConnection(SOCKET socket);
00051 inline void AddToFDSet(Socket_fdset &set);
00052
00053
00054
00055
00056
00057
00058 BaseIncomingSet &operator=( BaseIncomingSet &inval);
00059 void Reset();
00060 };
00061
00062 #include "baseincomingset.i"
00063
00064 #endif //__BASEINCOMINGSET_H__
00065
00066
00067