public final boolean addDataListener()

in src/main/java/com/fazecast/jSerialComm/SerialPort.java [1171:1197]


	public final boolean addDataListener(SerialPortDataListener listener)
	{
		configurationLock.lock();
		try
		{
			if (userDataListener != null)
				return false;
			userDataListener = listener;
			eventFlags = listener.getListeningEvents();
			if ((eventFlags & SerialPort.LISTENING_EVENT_DATA_RECEIVED) > 0)
				eventFlags |= SerialPort.LISTENING_EVENT_DATA_AVAILABLE;
			serialEventListener = ((userDataListener instanceof SerialPortPacketListener) ? new SerialPortEventListener(((SerialPortPacketListener)userDataListener).getPacketSize()) :
				((userDataListener instanceof SerialPortMessageListener) ?
						new SerialPortEventListener(((SerialPortMessageListener)userDataListener).getMessageDelimiter(), ((SerialPortMessageListener)userDataListener).delimiterIndicatesEndOfMessage()) :
							new SerialPortEventListener()));
			if (portHandle != 0)
			{
				if (androidPort != null)
					androidPort.configPort(this);
				else
					configPort(portHandle);
				serialEventListener.startListening();
			}
			return true;
		}
		finally { configurationLock.unlock(); }
	}