@Override
    public void onSubscribe(Subscription s) {
      if (SubscriptionHelper.validateSubscription(this.s, s)) {
        return;
      }
      this.s = s;

      Subscriber<? super U> actual = this.actual;

      U b;

      try {
        b = bufferSupplier.get();
      } catch (Throwable e) {
        cancelled = true;
        s.cancel();
        EmptySubscription.error(e, actual);
        return;
      }

      if (b == null) {
        cancelled = true;
        s.cancel();
        EmptySubscription.error(new NullPointerException("The buffer supplied is null"), actual);
        return;
      }
      buffer = b;

      Publisher<B> boundary;

      try {
        boundary = boundarySupplier.get();
      } catch (Throwable ex) {
        cancelled = true;
        s.cancel();
        EmptySubscription.error(ex, actual);
        return;
      }

      if (boundary == null) {
        cancelled = true;
        s.cancel();
        EmptySubscription.error(
            new NullPointerException("The boundary publisher supplied is null"), actual);
        return;
      }

      BufferBoundarySubscriber<T, U, B> bs = new BufferBoundarySubscriber<T, U, B>(this);
      other = bs;

      actual.onSubscribe(this);

      if (!cancelled) {
        s.request(Long.MAX_VALUE);

        boundary.subscribe(bs);
      }
    }
 @Override
 public void request(long n) {
   if (SubscriptionHelper.validate(n)) {
     if (BackpressureHelper.addAndGet(REQUESTED, this, n) == 0) {
       if (n == Long.MAX_VALUE) {
         fastPath();
       } else {
         slowPath(n);
       }
     }
   }
 }
Beispiel #3
0
 public boolean addSubscription(Subscription toAdd) {
   return subHelper.addSubscription(toAdd);
 }
Beispiel #4
0
 public void resetToDemoSubscriptions() {
   subHelper.resetToDemoSubscriptions();
 }
Beispiel #5
0
 /**
  * Gets a Map of URLs to Subscription Name
  *
  * @return a map keyed on sub url to value of sub name
  */
 public List<Subscription> getSubscriptions() {
   List<Subscription> subscriptions = subHelper.getSubscriptions();
   return subscriptions;
 }
Beispiel #6
0
 public boolean editSubscription(Subscription original, Subscription modified) {
   return subHelper.editSubscription(original, modified);
 }
Beispiel #7
0
 public void toggleSubscription(Subscription sub) {
   subHelper.toggleSubscription(sub);
 }
Beispiel #8
0
 public void deleteSubscription(Subscription sub) {
   subHelper.removeSubscription(sub);
 }
Beispiel #9
0
 public void deleteAllSubscriptions() {
   subHelper.deleteAllSubscriptions();
 }