Example usage for io.netty.util.concurrent Future addListener

List of usage examples for io.netty.util.concurrent Future addListener

Introduction

In this page you can find the example usage for io.netty.util.concurrent Future addListener.

Prototype

Future<V> addListener(GenericFutureListener<? extends Future<? super V>> listener);

Source Link

Document

Adds the specified listener to this future.

Usage

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