Example #1
0
 @Override
 public SubscriptionResponse changesubscriptiontimeouts(
     final long subscriptionid, final long polltimeout, final long maxkeepalive) {
   final Subscriber subscriber = this.subscribers.get(subscriptionid);
   if (subscriber == null) {
     return new SubscriptionResponse();
   } else {
     subscriber.setMaxKeepalive(maxkeepalive);
     subscriber.setPollTimeout(polltimeout);
     subscriber.notifyListener();
     final SubscriptionResponse ret = new SubscriptionResponse(subscriber);
     ret.setSubscribed(true);
     return ret;
   }
 }
Example #2
0
 @Override
 public SubscriptionResponse unsubscribe(final long subscriptionid) {
   final Subscriber subscriber = this.subscribers.remove(subscriptionid);
   if (subscriber != null) {
     subscriber.notifyListener();
     try {
       for (final EventPublisher publisher : this.publishers) {
         publisher.terminatedSubscription(this, subscriptionid);
       }
     } catch (final Throwable e) {
       e.printStackTrace();
     }
     return new SubscriptionResponse(subscriber);
   }
   return new SubscriptionResponse();
 }
Example #3
0
 public List<Long> publishEvent(final EventObject event, final List<Long> subscriptionids) {
   ArrayList<Subscriber> publishTo = new ArrayList<Subscriber>();
   final ArrayList<Long> ret = new ArrayList<Long>();
   if (subscriptionids != null && subscriptionids.size() > 0) {
     /* publish to given subscriptionids */
     for (final long subscriptionid : subscriptionids) {
       final Subscriber subscriber = this.subscribers.get(subscriptionid);
       if (subscriber != null) {
         publishTo.add(subscriber);
       }
     }
   } else {
     /* publish to all subscribers */
     publishTo = new ArrayList<Subscriber>(this.subscribers.values());
   }
   for (final Subscriber subscriber : publishTo) {
     if (subscriber.isSubscribed(event)) {
       ret.add(subscriber.getSubscriptionID());
       subscriber.push(event);
       subscriber.notifyListener();
     }
   }
   return ret;
 }