/***********************************************************************************
*
* Copyright (c) 2014 Kamil Baczkowicz
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Eclipse Distribution License v1.0 which accompany this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* The Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
*
* Kamil Baczkowicz - initial API and implementation and/or initial documentation
*
*/
package pl.baczkowicz.mqttspy.connectivity.handlers;
import javafx.application.Platform;
import org.eclipse.paho.client.mqttv3.IMqttActionListener;
import org.eclipse.paho.client.mqttv3.IMqttToken;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pl.baczkowicz.mqttspy.connectivity.MqttAsyncConnection;
import pl.baczkowicz.mqttspy.stats.StatisticsManager;
import pl.baczkowicz.mqttspy.ui.events.queuable.connectivity.MqttConnectionAttemptFailureEvent;
import pl.baczkowicz.mqttspy.ui.events.queuable.connectivity.MqttConnectionAttemptSuccessEvent;
public class MqttConnectionResultHandler implements IMqttActionListener
{
private final static Logger logger = LoggerFactory.getLogger(MqttConnectionResultHandler.class);
public void onSuccess(IMqttToken asyncActionToken)
{
final MqttAsyncConnection connection = (MqttAsyncConnection) asyncActionToken.getUserContext();
StatisticsManager.newConnection();
Platform.runLater(new MqttEventHandler(new MqttConnectionAttemptSuccessEvent(connection)));
logger.info(connection.getProperties().getName() + " connected");
}
public void onFailure(IMqttToken asyncActionToken, Throwable exception)
{
final MqttAsyncConnection connection = (MqttAsyncConnection) asyncActionToken.getUserContext();
Platform.runLater(new MqttEventHandler(new MqttConnectionAttemptFailureEvent(connection, exception)));
logger.warn("Connecting to " + connection.getProperties().getName() + " failed", exception);
}
}