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(); }
}