@Override public Observable<Void> call() throws Exception { return delegate.register(instanceInfo); } });
@Override public Observable<Void> asLifecycleObservable() { return delegate.asLifecycleObservable(); } }
@Override public void onCompleted() { logger.info("Channel closed gracefully and must be reconnected"); scheduleRetry(); }
@Override protected Observable<Void> repopulate(StateWithChannel newState) { if (instanceInfo != null) { return newState.getChannel().register(instanceInfo); } return Observable.empty(); }
@Override public Observable<Void> unregister() { instanceInfo = null; return getStateWithChannel().getChannel().unregister(); }
@Override public Observable<Void> call() throws Exception { return delegate.unregister(); } });
@Override public void onError(Throwable e) { if (recoverableError(e)) { logger.info("Channel failure; scheduling the reconnection in " + retryDelay + "ms", e); scheduleRetry(); } else { logger.error("Unrecoverable error; closing the retryable channel"); lifecycle.onError(e); close(); } }
@Override public Observable<Void> asLifecycleObservable() { return delegate.asLifecycleObservable(); } }
@Override public void close(Throwable error) { this.closeCalled = true; delegate.close(error); }
@Override public void call() { // Since we do not reuse the channel, we must shut it down with the underlying connection. registrationChannel.close(); } });
@Override public Observable<Void> asLifecycleObservable() { return delegate.asLifecycleObservable(); }
@Override public Observable<Void> call(InterestChannel interestChannel, Interest<InstanceInfo> interest) { return interestChannel.change(interest); } };
@Override public Observable<Void> update(final InstanceInfo newInfo) { this.instanceInfo = newInfo; return getStateWithChannel().getChannel().update(newInfo); }
@Override public void onError(Throwable e) { AbstractClientChannel.this.close(e); }
@Override public Observable<Void> call() throws Exception { return delegate.update(newInfo); } });
@Override public Observable<Void> asLifecycleObservable() { return delegate.asLifecycleObservable(); } }
@Override public Observable<Void> register(final InstanceInfo newInfo) { this.instanceInfo = newInfo; return getStateWithChannel().getChannel().register(instanceInfo); }
@Override public Observable<Void> call(RegistrationChannel channel, InstanceInfo instanceInfo) { return channel.register(instanceInfo); } };
@Override public Observable<Void> unregister() { hasUnregistered = true; return delegate.unregister(); } }
@Override public void close() { this.closeCalled = true; delegate.close(); }