@Override public Observable<Object> incoming() { return delegate.incoming(); }
@Override public void shutdown() { connection.shutdown(); } }
@Override public Observable<Void> submit(Object message) { return delegate.submit(message); }
@Override public Observable<? extends Void> call(MessageConnection connection) { return connection.submitWithAck(Unregister.INSTANCE); } });
@Override public Observable<ReplicationHelloReply> call(final MessageConnection connection) { return connection.submit(hello) .cast(ReplicationHelloReply.class) .concatWith( connection.incoming().flatMap(new Func1<Object, Observable<ReplicationHelloReply>>() { @Override public Observable<ReplicationHelloReply> call(Object o) { if (o instanceof ReplicationHelloReply) { return Observable.just((ReplicationHelloReply) o); } return Observable.error(new Exception("Unexpected message of type " + o.getClass() + " received")); } }) ); } });
this.heartbeatSenderReceiver = new HeartbeatSenderReceiver(); ackInputSubscription = delegate.incoming() .filter(new Func1<Object, Boolean>() { @Override .subscribe(filteredInput); delegate.lifecycleObservable().subscribe(new Subscriber<Void>() { @Override public void onCompleted() {
@Override public Observable<Void> acknowledge() { return delegate.acknowledge(); }
@Override public Observable<Void> lifecycleObservable() { return delegate.lifecycleObservable(); }
@Override public Observable<Void> onError(Throwable error) { return delegate.onError(error); }
@Override public Observable<Void> onCompleted() { return delegate.onCompleted(); }
@Override public Observable<Void> submitWithAck(Object message, long timeout) { return delegate.submitWithAck(message, timeout); }
@Override public Observable<Void> acknowledge() { return delegate.acknowledge(); }
@Override public Observable<Void> lifecycleObservable() { return delegate.lifecycleObservable(); }
protected Observable<Void> sendErrorOnConnection(MessageConnection connection, Throwable throwable) { if (logger.isDebugEnabled()) { logger.debug("Sending error to the server: {}", throwable); } return subscribeToTransportSend(connection.onError(throwable), "error"); }
protected void sendOnCompleteOnTransport() { if (logger.isDebugEnabled()) { logger.debug("Sending onComplete on the transport."); } subscribeToTransportSend(transport.onCompleted(), "completion"); }
@Override public Observable<Void> submitWithAck(Object message, long timeout) { return delegate.submitWithAck(message, timeout); }
@Override public Observable<Void> submit(Object message) { return delegate.submit(message); }
@Override protected void _close() { transport.shutdown(); // Idempotent so we can call it even if it is already shutdown. }
protected void subscribeToTransportInput(final Action1<Object> onNext) { connectInputToLifecycle(transport.incoming(), onNext); }
protected Observable<Void> sendAckOnTransport() { if (logger.isDebugEnabled()) { logger.debug("Sending acknowledgment on the transport."); } return subscribeToTransportSend(transport.acknowledge(), "acknowledgment"); }