Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef UNIXSERVERSTREAM_H
00027 #define UNIXSERVERSTREAM_H
00028
00029 #include <list>
00030 #include <poll.h>
00031
00032 #include "Stream.h"
00033 #include "GpCoreToolsDLLExport.h"
00034
00035 namespace GpCoreTools {
00036
00037 class UnixClientStream;
00038
00039 class GPCORETOOLS_EXPORT UnixServerStream : public Stream
00040 {
00041 public:
00042 UnixServerStream();
00043
00044 bool listen(const char * name, int maxConnections);
00045
00046 virtual short eventTypes() {return POLLIN;}
00047 virtual void event(short type);
00048
00049 void send(const char * bytes, int byteCount);
00050 protected:
00051 virtual void childDeleted(Stream * client);
00052 virtual UnixClientStream * createClientStream(int fileDescriptor, const char * peer)=0;
00053 private:
00054 std::list<UnixClientStream *> _clients;
00055 };
00056
00057 }
00058
00059 #endif // UNIXSERVERSTREAM_H