protected override IoSession NewSession(IoProcessor <SocketSession> processor, System.Net.Sockets.Socket socket) { EndPoint localEP = socket.LocalEndPoint; EndPoint remoteEP = socket.RemoteEndPoint; return(new AsyncSocketSession(this, processor, socket, localEP, remoteEP, ReuseBuffer)); }
/// <summary> /// Instantiates. /// </summary> /// <param name="service">the service this session belongs to</param> /// <param name="processor">the processor to process this session</param> /// <param name="socket">the associated socket</param> /// <param name="readBuffer">the <see cref="SocketAsyncEventArgsBuffer"/> as reading buffer</param> /// <param name="writeBuffer">the <see cref="SocketAsyncEventArgsBuffer"/> as writing buffer</param> /// <param name="reuseBuffer">whether or not reuse internal buffer, see <seealso cref="SocketSession.ReuseBuffer"/> for more</param> public AsyncSocketSession(IoService service, IoProcessor <SocketSession> processor, System.Net.Sockets.Socket socket, SocketAsyncEventArgsBuffer readBuffer, SocketAsyncEventArgsBuffer writeBuffer, Boolean reuseBuffer) : base(service, processor, new SessionConfigImpl(socket), socket, socket.LocalEndPoint, socket.RemoteEndPoint, reuseBuffer) { _readBuffer = readBuffer; _readBuffer.SocketAsyncEventArgs.UserToken = this; _writeBuffer = writeBuffer; _writeBuffer.SocketAsyncEventArgs.UserToken = this; _completeHandler = saea_Completed; }
/// <summary> /// Instantiates. /// </summary> /// <param name="service">the service this session belongs to</param> /// <param name="processor">the processor to process this session</param> /// <param name="socket">the associated socket</param> /// <param name="readBuffer">the <see cref="SocketAsyncEventArgsBuffer"/> as reading buffer</param> /// <param name="writeBuffer">the <see cref="SocketAsyncEventArgsBuffer"/> as writing buffer</param> /// <param name="reuseBuffer">whether or not reuse internal buffer, see <seealso cref="SocketSession.ReuseBuffer"/> for more</param> public AsyncSocketSession(IoService service, IoProcessor<SocketSession> processor, System.Net.Sockets.Socket socket, SocketAsyncEventArgsBuffer readBuffer, SocketAsyncEventArgsBuffer writeBuffer, Boolean reuseBuffer) : base(service, processor, new SessionConfigImpl(socket), socket, socket.LocalEndPoint, socket.RemoteEndPoint, reuseBuffer) { _readBuffer = readBuffer; _readBuffer.SocketAsyncEventArgs.UserToken = this; _writeBuffer = writeBuffer; _writeBuffer.SocketAsyncEventArgs.UserToken = this; _completeHandler = saea_Completed; }
/// <summary> /// </summary> public DummySession() : base(new DummyService(new DummyConfig())) { _processor = new DummyProcessor(); _filterChain = new DefaultIoFilterChain(this); IoSessionDataStructureFactory factory = new DefaultIoSessionDataStructureFactory(); AttributeMap = factory.GetAttributeMap(this); SetWriteRequestQueue(factory.GetWriteRequestQueue(this)); }
protected SocketSession(IoService service, IoProcessor processor, IoSessionConfig config, System.Net.Sockets.Socket socket, EndPoint localEP, EndPoint remoteEP, Boolean reuseBuffer) : base(service) { _socket = socket; _localEP = localEP; _remoteEP = remoteEP; Config = config; if (service.SessionConfig != null) Config.SetAll(service.SessionConfig); _processor = processor; _filterChain = new DefaultIoFilterChain(this); }
public SerialSession(SerialConnector service, SerialEndPoint endpoint, SerialPort serialPort) : base(service) { _processor = service; base.Config = new SessionConfigImpl(serialPort); if (service.SessionConfig != null) Config.SetAll(service.SessionConfig); _filterChain = new DefaultIoFilterChain(this); _serialPort = serialPort; _endpoint = endpoint; _serialPort.DataReceived += new SerialDataReceivedEventHandler(_serialPort_DataReceived); }
public SerialSession(SerialConnector service, SerialEndPoint endpoint, SerialPort serialPort) : base(service) { _processor = service; base.Config = new SessionConfigImpl(serialPort); if (service.SessionConfig != null) { Config.SetAll(service.SessionConfig); } _filterChain = new DefaultIoFilterChain(this); _serialPort = serialPort; _endpoint = endpoint; _serialPort.DataReceived += new SerialDataReceivedEventHandler(_serialPort_DataReceived); }
/// <summary> /// </summary> protected SocketSession(IoService service, IoProcessor processor, IoSessionConfig config, System.Net.Sockets.Socket socket, EndPoint localEP, EndPoint remoteEP, Boolean reuseBuffer) : base(service) { _socket = socket; _localEP = localEP; _remoteEP = remoteEP; Config = config; if (service.SessionConfig != null) { Config.SetAll(service.SessionConfig); } _processor = processor; _filterChain = new DefaultIoFilterChain(this); }
/// <inheritdoc/> protected override IoSession NewSession(IoProcessor <SocketSession> processor, System.Net.Sockets.Socket socket) { SocketAsyncEventArgsBuffer readBuffer = _readWritePool.Pop(); SocketAsyncEventArgsBuffer writeBuffer = _readWritePool.Pop(); if (readBuffer == null) { readBuffer = (SocketAsyncEventArgsBuffer) SocketAsyncEventArgsBufferAllocator.Instance.Allocate(SessionConfig.ReadBufferSize); readBuffer.SocketAsyncEventArgs.Completed += readWriteEventArg_Completed; } if (writeBuffer == null) { writeBuffer = (SocketAsyncEventArgsBuffer) SocketAsyncEventArgsBufferAllocator.Instance.Allocate(SessionConfig.ReadBufferSize); writeBuffer.SocketAsyncEventArgs.Completed += readWriteEventArg_Completed; } return(new AsyncSocketSession(this, processor, socket, readBuffer, writeBuffer, ReuseBuffer)); }
internal AsyncDatagramSession(IoService service, IoProcessor<AsyncDatagramSession> processor, AsyncDatagramAcceptor.SocketContext ctx, EndPoint remoteEP, Boolean reuseBuffer) : base(service, processor, new DefaultDatagramSessionConfig(), ctx.Socket, ctx.Socket.LocalEndPoint, remoteEP, reuseBuffer) { _socketContext = ctx; }
/// <summary> /// </summary> public LoopbackFilterChain(AbstractIoSession session) : base(session) { _processor = new LoopbackIoProcessor(this); }
protected abstract IoSession NewSession(IoProcessor<SocketSession> processor, System.Net.Sockets.Socket socket);
/// <inheritdoc/> protected abstract IoSession NewSession(IoProcessor <SocketSession> processor, System.Net.Sockets.Socket socket);
protected override IoSession NewSession(IoProcessor<SocketSession> processor, System.Net.Sockets.Socket socket) { return new AsyncSocketSession(this, processor, socket, ReuseBuffer); }
public AsyncSocketSession(IoService service, IoProcessor <SocketSession> processor, System.Net.Sockets.Socket socket, EndPoint localEP, EndPoint remoteEP, Boolean reuseBuffer) : base(service, processor, new SessionConfigImpl(socket), socket, localEP, remoteEP, reuseBuffer) { _readBuffer = new Byte[service.SessionConfig.ReadBufferSize]; }
public AsyncSocketSession(IoService service, IoProcessor<SocketSession> processor, System.Net.Sockets.Socket socket, Boolean reuseBuffer) : base(service, processor, new SessionConfigImpl(socket), socket, socket.LocalEndPoint, socket.RemoteEndPoint, reuseBuffer) { _readBuffer = new Byte[service.SessionConfig.ReadBufferSize]; }
protected override IoSession NewSession(IoProcessor <SocketSession> processor, System.Net.Sockets.Socket socket) { return(new AsyncSocketSession(this, processor, socket, ReuseBuffer)); }
/// <inheritdoc/> protected override IoSession NewSession(IoProcessor<SocketSession> processor, System.Net.Sockets.Socket socket) { SocketAsyncEventArgsBuffer readBuffer = _readWritePool.Pop(); SocketAsyncEventArgsBuffer writeBuffer = _readWritePool.Pop(); if (readBuffer == null) { readBuffer = (SocketAsyncEventArgsBuffer) SocketAsyncEventArgsBufferAllocator.Instance.Allocate(SessionConfig.ReadBufferSize); readBuffer.SocketAsyncEventArgs.Completed += readWriteEventArg_Completed; } if (writeBuffer == null) { writeBuffer = (SocketAsyncEventArgsBuffer) SocketAsyncEventArgsBufferAllocator.Instance.Allocate(SessionConfig.ReadBufferSize); writeBuffer.SocketAsyncEventArgs.Completed += readWriteEventArg_Completed; } return new AsyncSocketSession(this, processor, socket, readBuffer, writeBuffer, ReuseBuffer); }
/// <summary> /// Creates a new acceptor-side session instance. /// </summary> internal AsyncDatagramSession(IoService service, IoProcessor <AsyncDatagramSession> processor, AsyncDatagramAcceptor.SocketContext ctx, EndPoint remoteEP, Boolean reuseBuffer) : base(service, processor, new DefaultDatagramSessionConfig(), ctx.Socket, ctx.Socket.LocalEndPoint, remoteEP, reuseBuffer) { _socketContext = ctx; }