bufferConnection.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef EQNET_BUFFER_CONNECTION_H
00019 #define EQNET_BUFFER_CONNECTION_H
00020
00021 #include <eq/net/connection.h>
00022 #include <eq/base/buffer.h>
00023
00024 namespace eq
00025 {
00026 namespace net
00027 {
00031 class BufferConnection : public Connection
00032 {
00033 public:
00034 EQ_EXPORT BufferConnection();
00035 EQ_EXPORT virtual ~BufferConnection();
00036
00037 EQ_EXPORT void sendBuffer( ConnectionPtr connection );
00038
00039 EQ_EXPORT uint64_t getSize() const { return _buffer.getSize(); }
00040
00041 protected:
00042 virtual void readNB( void* buffer, const uint64_t bytes )
00043 { EQDONTCALL; }
00044 virtual int64_t readSync( void* buffer, const uint64_t bytes )
00045 { EQDONTCALL; return -1; }
00046 EQ_EXPORT virtual int64_t write( const void* buffer,
00047 const uint64_t bytes );
00048
00049 private:
00050 mutable base::Bufferb _buffer;
00051 };
00052 }
00053 }
00054
00055 #endif //EQNET_BUFFER_CONNECTION_H