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.
|
* 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);
|
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.
|
* 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.
|
* depending on if the controller is ready thorough the {@link HalAbstractController#isAvailable()} method.
|
||||||
*
|
*
|
||||||
* @param clazz is the class of the wanted object instance wanted
|
* @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)
|
if (this instanceof HalDeviceReportListener)
|
||||||
controller.addListener((HalDeviceReportListener) this);
|
controller.addListener((HalDeviceReportListener) this);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,8 @@ public class DummyController implements HalSensorController, HalEventController,
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addListener(HalDeviceReportListener listener) {
|
public void addListener(HalDeviceReportListener listener) {
|
||||||
deviceListeners.add(listener);
|
if (!deviceListeners.contains(listener))
|
||||||
|
deviceListeners.add(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -154,6 +154,7 @@ public class HalMqttController implements HalAutostartController, MqttSubscripti
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addListener(HalDeviceReportListener listener) {
|
public void addListener(HalDeviceReportListener listener) {
|
||||||
deviceListeners.add(listener);
|
if (!deviceListeners.contains(listener))
|
||||||
|
deviceListeners.add(listener);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -125,7 +125,8 @@ public class NetScanController implements HalEventController, HalAutostartContro
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addListener(HalDeviceReportListener listener) {
|
public void addListener(HalDeviceReportListener listener) {
|
||||||
deviceListeners.add(listener);
|
if (!deviceListeners.contains(listener))
|
||||||
|
deviceListeners.add(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,8 @@ public class NutUpsController implements HalSensorController, HalAutostartContro
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addListener(HalDeviceReportListener listener) {
|
public void addListener(HalDeviceReportListener listener) {
|
||||||
deviceListeners.add(listener);
|
if (!deviceListeners.contains(listener))
|
||||||
|
deviceListeners.add(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,8 @@ public class RTSPController implements HalCameraController {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addListener(HalDeviceReportListener listener) {
|
public void addListener(HalDeviceReportListener listener) {
|
||||||
deviceListeners.add(listener);
|
if (!deviceListeners.contains(listener))
|
||||||
|
deviceListeners.add(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,8 @@ public class RPiController implements HalSensorController {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addListener(HalDeviceReportListener listener) {
|
public void addListener(HalDeviceReportListener listener) {
|
||||||
deviceListeners.add(listener);
|
if (!deviceListeners.contains(listener))
|
||||||
|
deviceListeners.add(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -252,7 +252,8 @@ public class TellstickSerialComm implements Runnable,
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addListener(HalDeviceReportListener listener) {
|
public void addListener(HalDeviceReportListener listener) {
|
||||||
deviceListeners.add(listener);
|
if (!deviceListeners.contains(listener))
|
||||||
|
deviceListeners.add(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -386,7 +386,8 @@ public class ZigbeeController implements HalSensorController,
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addListener(HalDeviceReportListener listener) {
|
public void addListener(HalDeviceReportListener listener) {
|
||||||
deviceListeners.add(listener);
|
if (!deviceListeners.contains(listener))
|
||||||
|
deviceListeners.add(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -321,7 +321,8 @@ public class HalZWaveController implements HalSensorController, HalEventControll
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addListener(HalDeviceReportListener listener) {
|
public void addListener(HalDeviceReportListener listener) {
|
||||||
deviceListeners.add(listener);
|
if (!deviceListeners.contains(listener))
|
||||||
|
deviceListeners.add(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue