public int connect(Buffer readBuffer, Buffer writeBuffer, ref bool moreData) { if (_state == StateNeedConnect) { _state = StateConnectPending; return(SocketOperation.Connect); } else if (_state <= StateConnectPending) { Debug.Assert(_writeEventArgs != null); if (_writeEventArgs.SocketError != SocketError.Success) { SocketException ex = new SocketException((int)_writeEventArgs.SocketError); if (Network.connectionRefused(ex)) { throw new Ice.ConnectionRefusedException(ex); } else { throw new Ice.ConnectFailedException(ex); } } Debug.Assert(_fd != null); _desc = Network.fdToString(_fd, _proxy, _addr); _state = _proxy != null ? StateProxyWrite : StateConnected; } if (_state == StateProxyWrite) { Debug.Assert(_proxy != null); Debug.Assert(_addr != null); _proxy.beginWrite(_addr, writeBuffer); return(SocketOperation.Write); } else if (_state == StateProxyRead) { Debug.Assert(_proxy != null); _proxy.beginRead(readBuffer); return(SocketOperation.Read); } else if (_state == StateProxyConnected) { Debug.Assert(_proxy != null); _proxy.finish(readBuffer, writeBuffer); readBuffer.clear(); writeBuffer.clear(); _state = StateConnected; } Debug.Assert(_state == StateConnected); return(SocketOperation.None); }
public Buffer(Buffer buf, bool adopt) { b = buf.b; _size = buf._size; _capacity = buf._capacity; _shrinkCounter = buf._shrinkCounter; _order = buf._order; if (adopt) { buf.clear(); } }
public Buffer(Buffer buf, bool adopt) { b = buf.b; _size = buf._size; _capacity = buf._capacity; _shrinkCounter = buf._shrinkCounter; _order = buf._order; if(adopt) { buf.clear(); } }
public int connect(Buffer readBuffer, Buffer writeBuffer, ref bool moreData) { if(_state == StateNeedConnect) { _state = StateConnectPending; return SocketOperation.Connect; } else if(_state <= StateConnectPending) { #if ICE_SOCKET_ASYNC_API if(_writeEventArgs.SocketError != SocketError.Success) { SocketException ex = new SocketException((int)_writeEventArgs.SocketError); if(Network.connectionRefused(ex)) { throw new Ice.ConnectionRefusedException(ex); } else { throw new Ice.ConnectFailedException(ex); } } #else Network.doFinishConnectAsync(_fd, _writeResult); _writeResult = null; #endif _desc = Network.fdToString(_fd, _proxy, _addr); _state = _proxy != null ? StateProxyWrite : StateConnected; } if(_state == StateProxyWrite) { _proxy.beginWrite(_addr, writeBuffer); return SocketOperation.Write; } else if(_state == StateProxyRead) { _proxy.beginRead(readBuffer); return SocketOperation.Read; } else if(_state == StateProxyConnected) { _proxy.finish(readBuffer, writeBuffer); readBuffer.clear(); writeBuffer.clear(); _state = StateConnected; } Debug.Assert(_state == StateConnected); return SocketOperation.None; }