public static <T> Observable<T> applyTimeout(final Observable<T> input, final CouchbaseRequest request, final CouchbaseEnvironment environment, final long timeout, final TimeUnit timeUnit) { if (timeout > 0) { return input .timeout(timeout, timeUnit, environment.scheduler()) .onErrorResumeNext(new Func1<Throwable, Observable<? extends T>>() { @Override public Observable<? extends T> call(Throwable t) { if (t instanceof TimeoutException) { return Observable.error(new TimeoutException(Utils.formatTimeout( request, timeUnit.toMicros(timeout) ))); } else { return Observable.error(t); } } }); } else { return input; } }
@Override public Observable<DocumentFragment<Mutation>> call(final DocumentFragment<Mutation> fragment) { Observable<DocumentFragment<Mutation>> result = Observe.call(core, bucketName, docId, fragment.cas(), false, fragment.mutationToken(), persistTo.value(), replicateTo.value(), environment.observeIntervalDelay(), environment.retryStrategy()) .map(new Func1<Boolean, DocumentFragment<Mutation>>() { @Override public DocumentFragment<Mutation> call(Boolean aBoolean) { return fragment; } }).onErrorResumeNext(new Func1<Throwable, Observable<DocumentFragment<Mutation>>>() { @Override public Observable<DocumentFragment<Mutation>> call(Throwable throwable) { return Observable.error(new DurabilityException( "Durability requirement failed: " + throwable.getMessage(), throwable)); } }); if (timeout > 0) { result = result.timeout(timeout, timeUnit, environment.scheduler()); } return result; } });
@Override public Observable<D> call(final D doc) { Observable<D> or = Observe .call(core, bucket, doc.id(), doc.cas(), false, doc.mutationToken(), persistTo.value(), replicateTo.value(), environment.observeIntervalDelay(), environment.retryStrategy(), parent) .map(new Func1<Boolean, D>() { @Override public D call(Boolean aBoolean) { return doc; } }).onErrorResumeNext(new Func1<Throwable, Observable<? extends D>>() { @Override public Observable<? extends D> call(Throwable throwable) { return Observable.error(new DurabilityException( "Durability requirement failed: " + throwable.getMessage(), throwable)); } }); // we need a timeout here since observe doesn't have one yet return timeout > 0 ? or.timeout(timeout, timeUnit, environment.scheduler()) : or; } }).doOnTerminate(stopTracing(parent));
@Override public Observable<D> call(final D doc) { Observable<D> or = Observe .call(core, bucket, doc.id(), doc.cas(), false, doc.mutationToken(), persistTo.value(), replicateTo.value(), environment.observeIntervalDelay(), environment.retryStrategy(), parent) .map(new Func1<Boolean, D>() { @Override public D call(Boolean aBoolean) { return doc; } }).onErrorResumeNext(new Func1<Throwable, Observable<? extends D>>() { @Override public Observable<? extends D> call(Throwable throwable) { return Observable.error(new DurabilityException( "Durability requirement failed: " + throwable.getMessage(), throwable)); } }); // we need a timeout here since observe doesn't have one yet return timeout > 0 ? or.timeout(timeout, timeUnit, environment.scheduler()) : or; } }).doOnTerminate(stopTracing(parent));
@Override public Observable<D> call(final D doc) { Observable<D> or = Observe .call(core, bucket, doc.id(), doc.cas(), false, doc.mutationToken(), persistTo.value(), replicateTo.value(), environment.observeIntervalDelay(), environment.retryStrategy(), parent) .map(new Func1<Boolean, D>() { @Override public D call(Boolean aBoolean) { return doc; } }).onErrorResumeNext(new Func1<Throwable, Observable<? extends D>>() { @Override public Observable<? extends D> call(Throwable throwable) { return Observable.error(new DurabilityException( "Durability requirement failed: " + throwable.getMessage(), throwable)); } }); // we need a timeout here since observe doesn't have one yet return timeout > 0 ? or.timeout(timeout, timeUnit, environment.scheduler()) : or; } }).doOnTerminate(stopTracing(parent));
@Override public Observable<D> call(final D doc) { Observable<D> or = Observe .call(core, bucket, doc.id(), doc.cas(), false, doc.mutationToken(), persistTo.value(), replicateTo.value(), environment.observeIntervalDelay(), environment.retryStrategy(), parent) .map(new Func1<Boolean, D>() { @Override public D call(Boolean aBoolean) { return doc; } }).onErrorResumeNext(new Func1<Throwable, Observable<? extends D>>() { @Override public Observable<? extends D> call(Throwable throwable) { return Observable.error(new DurabilityException( "Durability requirement failed: " + throwable.getMessage(), throwable)); } }); // we need a timeout here since observe doesn't have one yet return timeout > 0 ? or.timeout(timeout, timeUnit, environment.scheduler()) : or; } }).doOnTerminate(stopTracing(parent));
@Override public Observable<D> call(final D doc) { Observable<D> or = Observe .call(core, bucket, doc.id(), doc.cas(), true, doc.mutationToken(), persistTo.value(), replicateTo.value(), environment.observeIntervalDelay(), environment.retryStrategy(), parent) .map(new Func1<Boolean, D>() { @Override public D call(Boolean aBoolean) { return doc; } }).onErrorResumeNext(new Func1<Throwable, Observable<? extends D>>() { @Override public Observable<? extends D> call(Throwable throwable) { return Observable.error(new DurabilityException( "Durability requirement failed: " + throwable.getMessage(), throwable)); } }); // we need a timeout here since observe doesn't have one yet return timeout > 0 ? or.timeout(timeout, timeUnit, environment.scheduler()) : or; } }).doOnTerminate(stopTracing(parent));
@Override public Observable<D> call(final D doc) { Observable<D> or = Observe .call(core, bucket, doc.id(), doc.cas(), false, doc.mutationToken(), persistTo.value(), replicateTo.value(), environment.observeIntervalDelay(), environment.retryStrategy(), parent) .map(new Func1<Boolean, D>() { @Override public D call(Boolean aBoolean) { return doc; } }) .onErrorResumeNext(new Func1<Throwable, Observable<? extends D>>() { @Override public Observable<? extends D> call(Throwable throwable) { return Observable.error(new DurabilityException( "Durability requirement failed: " + throwable.getMessage(), throwable)); } }); // we need a timeout here since observe doesn't have one yet return timeout > 0 ? or.timeout(timeout, timeUnit, environment.scheduler()) : or; } })
@Override public Observable<JsonLongDocument> call(final JsonLongDocument doc) { Observable<JsonLongDocument> or = Observe .call(core, bucket, doc.id(), doc.cas(), false, doc.mutationToken(), persistTo.value(), replicateTo.value(), environment.observeIntervalDelay(), environment.retryStrategy(), parent) .map(new Func1<Boolean, JsonLongDocument>() { @Override public JsonLongDocument call(Boolean aBoolean) { return doc; } }) .onErrorResumeNext(new Func1<Throwable, Observable<? extends JsonLongDocument>>() { @Override public Observable<? extends JsonLongDocument> call(Throwable throwable) { return Observable.error(new DurabilityException( "Durability requirement failed: " + throwable.getMessage(), throwable)); } }); // we need a timeout here since observe doesn't have one yet return timeout > 0 ? or.timeout(timeout, timeUnit, environment.scheduler()) : or; } })
@Override public Observable<DocumentFragment<T>> call(final DocumentFragment<T> frag) { Observable<DocumentFragment<T>> result = Observe .call(core, bucketName, frag.id(), frag.cas(), false, frag.mutationToken(), persistTo.value(), replicateTo.value(), environment.observeIntervalDelay(), environment.retryStrategy()) .map(new Func1<Boolean, DocumentFragment<T>>() { @Override public DocumentFragment<T> call(Boolean aBoolean) { return frag; } }) .onErrorResumeNext(new Func1<Throwable, Observable<DocumentFragment<T>>>() { @Override public Observable<DocumentFragment<T>> call(Throwable throwable) { return Observable.error(new DurabilityException( "Durability requirement failed: " + throwable.getMessage(), throwable)); } }); if (timeout > 0) { result = result.timeout(timeout, timeUnit, environment.scheduler()); } return result; } });
result = result.timeout(timeout, timeUnit, environment.scheduler());