List of usage examples for io.netty.util.concurrent Future addListener
Future<V> addListener(GenericFutureListener<? extends Future<? super V>> listener);
From source file:de.dentrassi.varlink.spi.Futures.java
License:Open Source License
public static <T> CompletableFuture<T> handle(final Future<T> future) { Objects.requireNonNull(future); final CompletableFuture<T> result = new CompletableFuture<>(); future.addListener(r -> { try {/*from www. j av a2 s . c om*/ result.complete(future.get()); } catch (final Throwable e) { result.completeExceptionally(e); } }); return result; }
From source file:de.unipassau.isl.evs.ssh.app.handler.AppDoorHandler.java
License:Open Source License
/** * Sends a "OpenDoor" message to the master. *//*from w ww .j av a 2 s .co m*/ public void unlatchDoor() { final String door = getDoor(); if (door == null) { Log.e(TAG, "Could not open the door. No door buzzer installed"); fireUnlatchActionFinished(false); return; } DoorPayload doorPayload = new DoorPayload(door); final Message.AddressedMessage messageToMaster = sendMessageToMaster(MASTER_DOOR_UNLATCH, new Message(doorPayload)); final Future<Void> messagePayloadFuture = newResponseFuture(messageToMaster); messagePayloadFuture.addListener(new FutureListener<Void>() { @Override public void operationComplete(Future<Void> future) throws Exception { fireUnlatchActionFinished(future.isSuccess()); } }); }
From source file:de.unipassau.isl.evs.ssh.app.handler.AppDoorHandler.java
License:Open Source License
private void blockDoor(boolean isBlocked) { final String door = getDoor(); if (door == null) { Log.e(TAG, "Could not (un)block the door. No door sensor installed"); fireBlockActionFinished(false);/*from w w w . j av a2s . c o m*/ return; } DoorBlockPayload doorPayload = new DoorBlockPayload(isBlocked, door); final Future<DoorStatusPayload> future = newResponseFuture( sendMessageToMaster(MASTER_DOOR_BLOCK, new Message(doorPayload))); future.addListener(new FutureListener<DoorStatusPayload>() { @Override public void operationComplete(Future<DoorStatusPayload> future) throws Exception { boolean wasSuccessful = future.isSuccess(); if (wasSuccessful) { final DoorStatusPayload payload = future.get(); isDoorBlocked = payload.isBlocked(); isDoorOpen = payload.isOpen(); } fireBlockActionFinished(wasSuccessful); } }); }
From source file:de.unipassau.isl.evs.ssh.app.handler.AppDoorHandler.java
License:Open Source License
/** * Refreshes the door photo by sending a message. *///from w w w . jav a2s.com public void refreshImage() { List<Module> cameras = requireComponent(AppModuleHandler.KEY).getCameras(); if (cameras.size() < 1) { Log.e(TAG, "Could not refresh the door image. No camera available"); fireCameraActionFinished(false); return; } CameraPayload payload = new CameraPayload(0, cameras.get(0).getName()); final Future<CameraPayload> future = newResponseFuture( sendMessageToMaster(MASTER_CAMERA_GET, new Message(payload))); future.addListener(new FutureListener<CameraPayload>() { @Override public void operationComplete(Future<CameraPayload> future) throws Exception { final boolean success = future.isSuccess(); if (success) { picture = future.get().getPicture(); } fireCameraActionFinished(success); } }); }
From source file:de.unipassau.isl.evs.ssh.app.handler.AppDoorHandler.java
License:Open Source License
/** * Requests the door status from master by sending him a message. *//*from w w w .ja v a2 s . co m*/ public void requestDoorStatus() { Message message = new Message(new DoorPayload(getDoor())); final Future<DoorStatusPayload> future = newResponseFuture(sendMessageToMaster(MASTER_DOOR_GET, message)); future.addListener(new FutureListener<DoorStatusPayload>() { @Override public void operationComplete(Future<DoorStatusPayload> future) throws Exception { if (future.isSuccess()) { handleUpdate(future.get()); } } }); }
From source file:de.unipassau.isl.evs.ssh.app.handler.AppHolidaySimulationHandler.java
License:Open Source License
/** * Changes the statue of the Holiday Simulation. When parameter on is {@code true} the simulation will start. * Otherwise the Simulation will stop.//ww w . j a v a 2 s. c o m * * @param on {@code true} to start the holiday simulation, {@code false} to stop the holiday simulation. */ public void switchHolidaySimulation(boolean on) { final HolidaySimulationPayload payload = new HolidaySimulationPayload(on); final Message.AddressedMessage message = sendMessageToMaster(MASTER_HOLIDAY_SET, new Message(payload)); final Future<HolidaySimulationPayload> future = newResponseFuture(message); future.addListener(new FutureListener<HolidaySimulationPayload>() { @Override public void operationComplete(Future<HolidaySimulationPayload> future) throws Exception { boolean isSuccess = future.isSuccess(); if (isSuccess) { isOn = future.get().switchOn(); } fireHolidayModeSet(isSuccess); } }); }
From source file:de.unipassau.isl.evs.ssh.app.handler.AppLightHandler.java
License:Open Source License
/** * Sends a GET-request for the status of a module. *//*from w ww . ja v a 2 s . c o m*/ private void requestLightStatus(Module m) { LightPayload lightPayload = new LightPayload(false, m); Message message = new Message(lightPayload); final Future<LightPayload> future = newResponseFuture(sendMessageToMaster(MASTER_LIGHT_GET, message)); future.addListener(new FutureListener<LightPayload>() { @Override public void operationComplete(Future<LightPayload> future) throws Exception { boolean wasSuccess = future.isSuccess(); if (wasSuccess) { LightPayload payload = future.get(); setCachedStatus(payload.getModule(), payload.getOn()); } fireLightGetFinished(wasSuccess); } }); }
From source file:de.unipassau.isl.evs.ssh.app.handler.AppLightHandler.java
License:Open Source License
/** * Sends a SET-request with the light-module and its status. * * @param module The light-module which status should be changed. * @param status The status of the module. *//*from ww w.j a v a 2s. c o m*/ private void setLight(Module module, boolean status) { LightPayload lightPayload = new LightPayload(status, module); Message message = new Message(lightPayload); final Future<LightPayload> future = newResponseFuture(sendMessageToMaster(MASTER_LIGHT_SET, message)); future.addListener(new FutureListener<LightPayload>() { @Override public void operationComplete(Future<LightPayload> future) throws Exception { boolean wasSuccess = future.isSuccess(); if (wasSuccess) { LightPayload payload = future.get(); setCachedStatus(payload.getModule(), payload.getOn()); } fireLightSetFinished(wasSuccess); } }); }
From source file:de.unipassau.isl.evs.ssh.app.handler.AppModifyModuleHandler.java
License:Open Source License
/** * Registers the given module. Invoker of this method can be notified with a NewModuleListener * when the registration is finished./* w w w.j a v a2 s .c om*/ * * @param module the module to register */ public void addNewModule(Module module) { ModifyModulePayload payload = new ModifyModulePayload(module); final Future<Void> future = newResponseFuture(sendMessageToMaster(MASTER_MODULE_ADD, new Message(payload))); future.addListener(new FutureListener<Void>() { @Override public void operationComplete(Future<Void> future) throws Exception { fireRegistrationFinished(future.isSuccess()); } }); }
From source file:de.unipassau.isl.evs.ssh.app.handler.AppModifyModuleHandler.java
License:Open Source License
/** * Removes the given module. Invoker of this method can be notified with a NewModuleListener * when this action finished./*from ww w . ja v a 2s . com*/ * * @param module the module to remove */ public void removeModule(Module module) { ModifyModulePayload payload = new ModifyModulePayload(module); final Future<Void> future = newResponseFuture( sendMessageToMaster(MASTER_MODULE_REMOVE, new Message(payload))); future.addListener(new FutureListener<Void>() { @Override public void operationComplete(Future<Void> future) throws Exception { fireUnregistrationFinished(future.isSuccess()); } }); }