diff options
Diffstat (limited to 'cpp/src/Ice/StreamSocket.cpp')
-rw-r--r-- | cpp/src/Ice/StreamSocket.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/cpp/src/Ice/StreamSocket.cpp b/cpp/src/Ice/StreamSocket.cpp index 3c9bbf1afcc..7ade8172ba4 100644 --- a/cpp/src/Ice/StreamSocket.cpp +++ b/cpp/src/Ice/StreamSocket.cpp @@ -18,6 +18,7 @@ StreamSocket::StreamSocket(const ProtocolInstancePtr& instance, const Address& addr, const Address& sourceAddr) : NativeInfo(createSocket(false, proxy ? proxy->getAddress() : addr)), + _instance(instance), _proxy(proxy), _addr(addr), _sourceAddr(sourceAddr), @@ -27,7 +28,7 @@ StreamSocket::StreamSocket(const ProtocolInstancePtr& instance, _write(SocketOperationWrite) #endif { - init(instance); + init(); #ifndef ICE_USE_IOCP if(doConnect(_fd, _proxy ? _proxy->getAddress() : _addr, sourceAddr)) { @@ -39,13 +40,14 @@ StreamSocket::StreamSocket(const ProtocolInstancePtr& instance, StreamSocket::StreamSocket(const ProtocolInstancePtr& instance, SOCKET fd) : NativeInfo(fd), + _instance(instance), _state(StateConnected) #ifdef ICE_USE_IOCP , _read(SocketOperationRead), _write(SocketOperationWrite) #endif { - init(instance); + init(); _desc = fdToString(fd); } @@ -126,6 +128,12 @@ StreamSocket::getRecvPacketSize(size_t length) #endif } +void +StreamSocket::setBufferSize(int rcvSize, int sndSize) +{ + setTcpBufSize(_fd, rcvSize, sndSize, _instance); +} + SocketOperation StreamSocket::read(Buffer& buf) { @@ -486,10 +494,10 @@ StreamSocket::toString() const } void -StreamSocket::init(const ProtocolInstancePtr& instance) +StreamSocket::init() { setBlock(_fd, false); - setTcpBufSize(_fd, instance); + setTcpBufSize(_fd, _instance); #ifdef ICE_USE_IOCP // |