public void onFailure(Throwable value) { if( next!=null ) { next.onFailure(value); } } }
public void onFailure(Throwable value) { if( next!=null ) { next.onFailure(value); } } }
public void onFailure(Throwable value) { Callback<T> callback = null; synchronized(this) { error = value; latch.countDown(); callback = next; } if( callback!=null ) { callback.onFailure(value); } }
public void connect(final Callback<Void> cb) { assert cb !=null : "Callback should not be null."; if( transport!=null ) { cb.onFailure(new IllegalStateException("Already connected")); return; } try { createTransport(new LoginHandler(cb, true)); } catch (Throwable e) { // This error happens when the MQTT config is invalid, reattempting // wont fix this case. cb.onFailure(e); } }
public void then(Callback<T> callback) { boolean fire = false; synchronized(this) { next = callback; if( latch.getCount() == 0 ) { fire = true; } } if( fire ) { if( error!=null ) { callback.onFailure(error); } else { callback.onSuccess(value); } } }
public void onFailure(Throwable value) { // Socket failure, should we try to reconnect? if( !disconnected && tryReconnect() ) { reconnect(this); } else { // nope. cb.onFailure(value); } } }
private void handleFatalFailure(Throwable error) { if( failure == null ) { failure = error; mqtt.tracer.debug("Fatal connection failure: %s", error); // Fail incomplete requests. ArrayList<Request> values = new ArrayList(requests.values()); requests.clear(); for (Request value : values) { if( value.cb!= null ) { value.cb.onFailure(failure); } } ArrayList<Request> overflowEntries = new ArrayList<Request>(overflow); overflow.clear(); for (Request entry : overflowEntries) { if( entry.cb !=null ) { entry.cb.onFailure(failure); } } if( listener !=null && !disconnected ) { try { listener.onFailure(failure); } catch (Exception e) { Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); } } } }
private void send(Request request) { if( failure !=null ) { if( request.cb!=null ) { request.cb.onFailure(failure); } } else { // Put the request in the map before sending it over the wire. if(request.id!=0) { this.requests.put(request.id, request); } if( overflow.isEmpty() && transport!=null && transport.offer(request.frame) ) { mqtt.tracer.onSend(request.frame); if(request.id==0) { if( request.cb!=null ) { ((Callback<Void>)request.cb).onSuccess(null); } } } else { // Remove it from the request. this.requests.remove(request.id); overflow.addLast(request); } } }
public void subscribe(final Topic[] topics, Callback<byte[]> cb) { if(topics==null) { throw new IllegalArgumentException("topics must not be null"); } queue.assertExecuting(); if( disconnected ) { cb.onFailure(createDisconnectedError()); return; } if( listener == DEFAULT_LISTENER ) { cb.onFailure(createListenerNotSetError()); } else { send(new SUBSCRIBE().topics(topics), new ProxyCallback<byte[]>(cb){ @Override public void onSuccess(byte[] value) { for (Topic topic : topics) { activeSubs.put(topic.name(), topic.qos()); } if(next!=null) { next.onSuccess(value); } } }); } }
public void unsubscribe(final UTF8Buffer[] topics, Callback<Void> cb) { queue.assertExecuting(); if( disconnected ) { cb.onFailure(createDisconnectedError()); return; } send(new UNSUBSCRIBE().topics(topics), new ProxyCallback(cb){ @Override public void onSuccess(Object value) { for (UTF8Buffer topic : topics) { activeSubs.remove(topic); } if(next!=null) { next.onSuccess(value); } } }); }
public void publish(UTF8Buffer topic, Buffer payload, QoS qos, boolean retain, Callback<Void> cb) { queue.assertExecuting(); if( disconnected ) { cb.onFailure(createDisconnectedError()); return; } PUBLISH command = new PUBLISH().qos(qos).retain(retain); command.topicName(topic).payload(payload); send(command, cb); }
public void onFailure(Throwable value) { if( next!=null ) { next.onFailure(value); } } }
public void onFailure(Throwable value) { if( next!=null ) { next.onFailure(value); } } }
public void onFailure(Throwable value) { Callback<T> callback = null; synchronized(this) { error = value; latch.countDown(); callback = next; } if( callback!=null ) { callback.onFailure(value); } }
public void onFailure(Throwable value) { // Socket failure, should we try to reconnect? if( !disconnected && tryReconnect() ) { reconnect(this); } else { // nope. cb.onFailure(value); } } }
protected void handleMessageArrived(final String topic, final Buffer payload, final Callback<Callback<Void>> ack) { final MqttMessageHandler handler; synchronized (this) { handler = subscriptions.get(topic); } if (handler != null) { try { handler.handleMessage(topic, payload.toByteBuffer()); ack.onSuccess(null); } catch (Exception e) { ack.onFailure(e); } } }
public void publish(UTF8Buffer topic, Buffer payload, QoS qos, boolean retain, Callback<Void> cb) { queue.assertExecuting(); if( disconnected ) { cb.onFailure(createDisconnectedError()); return; } PUBLISH command = new PUBLISH().qos(qos).retain(retain); command.topicName(topic).payload(payload); send(command, cb); }