public void Read(IByteParser parser, out string value, out string error) { if (!parser.TryDecode(_buffer, _currentIndex, out value, out int bytesRead, out error)) { throw new Exception("Unable to parse :" + error); } _currentIndex += bytesRead; }
public AsyncReader(IByteParser parser, byte[] buffer, IAcceptor acceptor, ISocketErrorHandler errorHandler, Socket socket) { _parser = parser; _buffer = buffer; _acceptor = acceptor; _errorHandler = errorHandler; _socket = socket; _endpoint = socket.RemoteEndPoint; _log = LogManager.GetLogger(_endpoint.ToString()); }
public void AcceptSocket(Socket receiveSocket, IAcceptor acceptor) { try { IByteParser parser = _parserFactory.Create(receiveSocket); PgmSocket.EnableGigabit(receiveSocket); if (_receiveBufferSize > 0) { receiveSocket.ReceiveBufferSize = _receiveBufferSize; } byte[] buffer = new byte[_readBuffer]; AsyncReader reader = new AsyncReader(parser, buffer, acceptor, this, receiveSocket); reader.BeginReceive(); }catch (Exception failed) { receiveSocket.Close(); log.Error("BeginReceive Failed", failed); } }
public EditableTagItem(IByteParser parser, byte[] value) { _originalValue = value; _parser = parser; isValid = _parser.TryDecode(_originalValue, 0, out _valueAsString, out _, out _); }
public ItemWrapper(string origianlValue, IByteParser byteParser) { _value = origianlValue; _byteParser = byteParser; }