Package rx.subscriptions

Examples of rx.subscriptions.SerialSubscription


    }

    @Override
    public Subscriber<? super HttpClientResponse<O>> call(final Subscriber<? super HttpClientResponse<O>> child) {

        final SerialSubscription serialSubscription = new SerialSubscription();
        // add serialSubscription so it gets unsubscribed if child is unsubscribed
        child.add(serialSubscription);

        final RedirectHandler.RedirectionContext redirectionContext =
                new RedirectHandler.RedirectionContext(originalRequest);

        Subscriber<HttpClientResponse<O>> toReturn = new RedirectSubscriber(child, redirectionContext,
                                                                            serialSubscription, redirectHandler);

        serialSubscription.set(toReturn); // In the next redirect, this should get unsubcribed.
        return toReturn;
    }
View Full Code Here


public final class OperatorSwitch<T> implements Operator<T, Observable<? extends T>> {

    @Override
    public Subscriber<? super Observable<? extends T>> call(final Subscriber<? super T> child) {
        final SerializedSubscriber<T> s = new SerializedSubscriber<T>(child);
        final SerialSubscription ssub = new SerialSubscription();
        child.add(ssub);
       
        return new Subscriber<Observable<? extends T>>(child) {
            final Object guard = new Object();
            final NotificationLite<?> nl = NotificationLite.instance();
            /** Guarded by guard. */
            int index;
            /** Guarded by guard. */
            boolean active;
            /** Guarded by guard. */
            boolean mainDone;
            /** Guarded by guard. */
            List<Object> queue;
            /** Guarded by guard. */
            boolean emitting;
            @Override
            public void onNext(Observable<? extends T> t) {
                final int id;
                synchronized (guard) {
                    id = ++index;
                    active = true;
                }
               
                Subscriber<T> sub = new Subscriber<T>() {

                    @Override
                    public void onNext(T t) {
                        emit(t, id);
                    }

                    @Override
                    public void onError(Throwable e) {
                        error(e, id);
                    }

                    @Override
                    public void onCompleted() {
                        complete(id);
                    }
                   
                };
                ssub.set(sub);
               
                t.unsafeSubscribe(sub);
            }

            @Override
View Full Code Here

        }

        return startingPoint.lift(new Observable.Operator<Void, Void>() {
            @Override
            public Subscriber<? super Void> call(Subscriber<? super Void> child) {
                SerialSubscription subscription = new SerialSubscription();
                return new ChainSubscriber(subscription, context, request, response, child);
            }
        });
    }
View Full Code Here

TOP

Related Classes of rx.subscriptions.SerialSubscription

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.