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 UNIXCLIENTSTREAM_H
00027 #define UNIXCLIENTSTREAM_H
00028
00029 #include <sys/un.h>
00030 #include <poll.h>
00031
00032 #include "Stream.h"
00033 #include "DynamicBuffer.h"
00034 #include "GpCoreToolsDLLExport.h"
00035
00036 namespace GpCoreTools {
00037
00038 class GPCORETOOLS_EXPORT UnixClientStream : public Stream
00039 {
00040 public:
00041 UnixClientStream(int fileDescriptor, const char * peer);
00042 UnixClientStream(const char * peer);
00043 virtual ~UnixClientStream();
00044
00045 virtual bool connect();
00046
00047 virtual short eventTypes() {return POLLIN | POLLRDHUP;}
00048 virtual void event(short type);
00049 virtual void hungUp() {}
00050
00051 DynamicBuffer * buffer() const {return _buffer;}
00052
00053 int write(const char * bytes, int byteCount) const {
00054 return ::write(fileDescriptor(), bytes, byteCount);
00055 }
00056
00057 static void setAddress(sockaddr_un& addr, const char * peer);
00058 protected:
00059 void setBuffer(DynamicBuffer * buffer) {_buffer=buffer;}
00060 private:
00061 sockaddr_un _peer;
00062 DynamicBuffer * _buffer;
00063 };
00064
00065 }
00066
00067 #endif // UNIXCLIENTSTREAM_H