Beispiel #1
0
        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;
        }
Beispiel #2
0
 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());
 }
Beispiel #3
0
 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());
 }
Beispiel #4
0
 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 _);
 }
Beispiel #6
0
 public ItemWrapper(string origianlValue, IByteParser byteParser)
 {
     _value      = origianlValue;
     _byteParser = byteParser;
 }