Possibly fixed multiple listener addition
This commit is contained in:
parent
f27f7e4c81
commit
b94b33ecf1
11 changed files with 24 additions and 12 deletions
|
|
@ -60,6 +60,7 @@ public interface HalAbstractController {
|
|||
|
||||
/**
|
||||
* Add a listener to the controller that will receive all device reports from registered devices.
|
||||
* Multiple calls with the same listener should only add register the listener once any subsequent calls should be ignored.
|
||||
*/
|
||||
void addListener(HalDeviceReportListener listener);
|
||||
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ public abstract class HalAbstractControllerManager<T extends HalAbstractControll
|
|||
|
||||
/**
|
||||
* Will return a singleton controller instance of the given class.
|
||||
* If a instance does not exist yet the a new instance will be allocated
|
||||
* If a instance does not exist yet then a new instance will be allocated
|
||||
* depending on if the controller is ready thorough the {@link HalAbstractController#isAvailable()} method.
|
||||
*
|
||||
* @param clazz is the class of the wanted object instance wanted
|
||||
|
|
@ -167,8 +167,10 @@ public abstract class HalAbstractControllerManager<T extends HalAbstractControll
|
|||
}
|
||||
}
|
||||
|
||||
// Assign the manager as a listener
|
||||
|
||||
// Assign the manager as a listener, This needs to be done every time as the controllerMap is a
|
||||
// shared static for all HalControllerManagers and as we do not know if the current manager is
|
||||
// added as listener or not we need to add it and let the implementation of addListener method
|
||||
// handle duplicate calls.
|
||||
if (this instanceof HalDeviceReportListener)
|
||||
controller.addListener((HalDeviceReportListener) this);
|
||||
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ public class DummyController implements HalSensorController, HalEventController,
|
|||
|
||||
@Override
|
||||
public void addListener(HalDeviceReportListener listener) {
|
||||
if (!deviceListeners.contains(listener))
|
||||
deviceListeners.add(listener);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -154,6 +154,7 @@ public class HalMqttController implements HalAutostartController, MqttSubscripti
|
|||
|
||||
@Override
|
||||
public void addListener(HalDeviceReportListener listener) {
|
||||
if (!deviceListeners.contains(listener))
|
||||
deviceListeners.add(listener);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -125,6 +125,7 @@ public class NetScanController implements HalEventController, HalAutostartContro
|
|||
|
||||
@Override
|
||||
public void addListener(HalDeviceReportListener listener) {
|
||||
if (!deviceListeners.contains(listener))
|
||||
deviceListeners.add(listener);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ public class NutUpsController implements HalSensorController, HalAutostartContro
|
|||
|
||||
@Override
|
||||
public void addListener(HalDeviceReportListener listener) {
|
||||
if (!deviceListeners.contains(listener))
|
||||
deviceListeners.add(listener);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ public class RTSPController implements HalCameraController {
|
|||
|
||||
@Override
|
||||
public void addListener(HalDeviceReportListener listener) {
|
||||
if (!deviceListeners.contains(listener))
|
||||
deviceListeners.add(listener);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -77,6 +77,7 @@ public class RPiController implements HalSensorController {
|
|||
|
||||
@Override
|
||||
public void addListener(HalDeviceReportListener listener) {
|
||||
if (!deviceListeners.contains(listener))
|
||||
deviceListeners.add(listener);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -252,6 +252,7 @@ public class TellstickSerialComm implements Runnable,
|
|||
|
||||
@Override
|
||||
public void addListener(HalDeviceReportListener listener) {
|
||||
if (!deviceListeners.contains(listener))
|
||||
deviceListeners.add(listener);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -386,6 +386,7 @@ public class ZigbeeController implements HalSensorController,
|
|||
|
||||
@Override
|
||||
public void addListener(HalDeviceReportListener listener) {
|
||||
if (!deviceListeners.contains(listener))
|
||||
deviceListeners.add(listener);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -321,6 +321,7 @@ public class HalZWaveController implements HalSensorController, HalEventControll
|
|||
|
||||
@Override
|
||||
public void addListener(HalDeviceReportListener listener) {
|
||||
if (!deviceListeners.contains(listener))
|
||||
deviceListeners.add(listener);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue