当前位置: 首页>>代码示例>>Java>>正文


Java Subscriber类代码示例

本文整理汇总了Java中java.util.concurrent.Flow.Subscriber的典型用法代码示例。如果您正苦于以下问题:Java Subscriber类的具体用法?Java Subscriber怎么用?Java Subscriber使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Subscriber类属于java.util.concurrent.Flow包,在下文中一共展示了Subscriber类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: subscribe

import java.util.concurrent.Flow.Subscriber; //导入依赖的package包/类
@Override
public void subscribe(Subscriber<? super T> s) {
  subscriber = s;
  subscriber.onSubscribe(new Subscription() {
    
    @Override
    public void request(long count) {
      requested = true;
      if (item != null) {
        publish(item);
      }
    }
    
    @Override
    public void cancel() {
      subscriber = null;
    }
  });
  if (error != null) {
    publish(error);
  }
}
 
开发者ID:openknowledge,项目名称:reactive-jax-rs,代码行数:23,代码来源:SingleItemPublisher.java

示例2: findAllAsync

import java.util.concurrent.Flow.Subscriber; //导入依赖的package包/类
public Publisher<Customer> findAllAsync() throws IOException {
  String customers = IOUtils.toString(new FileReader("customers.json")).trim();
  final String customerData = customers.substring(1, customers.length() - 1);

  return new Publisher<Customer>() {
    @Override
    public void subscribe(Subscriber<? super Customer> subscriber) {
      asList(customerData.split("\\{"))
        .stream()
        .filter(s -> !s.isEmpty())
        .map(c -> c.substring(0, c.lastIndexOf('}')))
        .map(c -> c.split(","))
        .map(c -> {
          String firstName = c[0].substring(c[0].indexOf(':') + 3, c[0].length() - 1);
          String lastName = c[1].substring(c[1].indexOf(':') + 3, c[1].length() - 1);
          return new Customer(firstName, lastName);
        })
        .forEach(subscriber::onNext);
      subscriber.onComplete();
    }
  };
}
 
开发者ID:openknowledge,项目名称:reactive-jax-rs,代码行数:23,代码来源:CustomerRepository.java

示例3: publish

import java.util.concurrent.Flow.Subscriber; //导入依赖的package包/类
public void publish(T i) {
  if (requested && subscriber != null) {
    Subscriber<? super T> s = subscriber;
    subscriber = null;
    s.onNext(i);
    s.onComplete();
  } else {
    item = i;
  }
}
 
开发者ID:openknowledge,项目名称:reactive-jax-rs,代码行数:11,代码来源:SingleItemPublisher.java

示例4: subscribe

import java.util.concurrent.Flow.Subscriber; //导入依赖的package包/类
@Override
public void subscribe(Subscriber<? super byte[]> subscriber) {
  byte[] buffer = new byte[1024];
  subscriber.onSubscribe(new Subscription() {
    
    @Override
    public void request(long count) {
      
      try {
        for (long i = 0; i < count; i++) {
          int read = stream.read(buffer);
          byte[] item = buffer;
          if (read != buffer.length) {
            item = new byte[read];
            System.arraycopy(buffer, 0, item, 0, read);
          }
          subscriber.onNext(item);
        }
      } catch (IOException e) {
        subscriber.onError(e);
      }
    }
    
    @Override
    public void cancel() {
    }
  });
}
 
开发者ID:openknowledge,项目名称:reactive-jax-rs,代码行数:29,代码来源:InputStreamPublisher.java

示例5: NumberSubscription

import java.util.concurrent.Flow.Subscriber; //导入依赖的package包/类
public NumberSubscription(ExecutorService executor,Subscriber<? super Long> subscriber,long start_range,long stop_range) {
	// TODO Auto-generated constructor stub
	this.executor = executor;
	this.subscriber=subscriber;
	this.start_range=start_range;
	this.stop_range=stop_range;
}
 
开发者ID:PacktPublishing,项目名称:Reactive-Programming-With-Java-9,代码行数:8,代码来源:NumberPublisher.java

示例6: main

import java.util.concurrent.Flow.Subscriber; //导入依赖的package包/类
public static void main(String[] args) {

		MyPublisher publisher=new MyPublisher();
		
		Subscriber<News> consumer1, consumer2;
		consumer1=new Consumer("Consumer 1");
		consumer2=new Consumer("Consumer 2");
		
		publisher.subscribe(consumer1);
		publisher.subscribe(consumer2);
		
		System.out.printf("Main: Start\n");
		
		News news=new News();
		news.setTitle("My first news");
		news.setContent("This is the content");
		news.setDate(new Date());

		publisher.publish(news);
		
		try {
			TimeUnit.SECONDS.sleep(1);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		
		news=new News();
		news.setTitle("My second news");
		news.setContent("This is the content of the second news");
		news.setDate(new Date());
		publisher.publish(news);
		
		System.out.printf("Main: End\n");
		
	}
 
开发者ID:PacktPublishing,项目名称:Java-9-Concurrency-Cookbook-Second-Edition,代码行数:36,代码来源:Main.java

示例7: createNewSubscriptionFor

import java.util.concurrent.Flow.Subscriber; //导入依赖的package包/类
private Sub createNewSubscriptionFor(Subscriber<? super Integer> subscriber) {
	int startValue = subscriptions.stream()
			.mapToInt(sub -> sub.nextValue.get())
			.min()
			.orElse(0);
	return new Sub(subscriber, startValue);
}
 
开发者ID:CodeFX-org,项目名称:demo-java-9,代码行数:8,代码来源:IncrementingPublisher.java

示例8: subscribe

import java.util.concurrent.Flow.Subscriber; //导入依赖的package包/类
@Override
public void subscribe(Subscriber<? super Long> subscriber) {
	// TODO Auto-generated method stub
	subscriber.onSubscribe(new NumberSubscription(executor,subscriber,start_range,stop_range));

}
 
开发者ID:PacktPublishing,项目名称:Reactive-Programming-With-Java-9,代码行数:7,代码来源:NumberPublisher.java

示例9: subscribe

import java.util.concurrent.Flow.Subscriber; //导入依赖的package包/类
@Override
public void subscribe(Subscriber<? super T> s) {
    s.onSubscribe(new JustSubscription<T>(s, value));
}
 
开发者ID:akarnokd,项目名称:jdk-9-experiments,代码行数:5,代码来源:FxJust.java

示例10: JustSubscription

import java.util.concurrent.Flow.Subscriber; //导入依赖的package包/类
public JustSubscription(Subscriber<? super T> actual, T value) {
    this.actual = actual;
    this.value = value;
}
 
开发者ID:akarnokd,项目名称:jdk-9-experiments,代码行数:5,代码来源:FxJust.java

示例11: subscribe

import java.util.concurrent.Flow.Subscriber; //导入依赖的package包/类
@Override
public void subscribe(Subscriber<? super Integer> subscriber) {
	Sub subscription = createNewSubscriptionFor(subscriber);
	registerSubscription(subscription);
	subscriber.onSubscribe(subscription);
}
 
开发者ID:CodeFX-org,项目名称:demo-java-9,代码行数:7,代码来源:IncrementingPublisher.java

示例12: Sub

import java.util.concurrent.Flow.Subscriber; //导入依赖的package包/类
public Sub(Subscriber<? super Integer> subscriber, int startValue) {
	this.subscriber = subscriber;
	this.nextValue = new AtomicInteger(startValue);
	this.canceled = new AtomicBoolean(false);
}
 
开发者ID:CodeFX-org,项目名称:demo-java-9,代码行数:6,代码来源:IncrementingPublisher.java

示例13: subscribe

import java.util.concurrent.Flow.Subscriber; //导入依赖的package包/类
@Override
public void subscribe(Subscriber<? super News> subscriber) {
	
	ConsumerData consumerData=new ConsumerData();
	consumerData.setConsumer((Consumer)subscriber);
	
	MySubscription subscription=new MySubscription();
	consumerData.setSubscription(subscription);
	
	subscriber.onSubscribe(subscription);
	
	consumers.add(consumerData);
}
 
开发者ID:PacktPublishing,项目名称:Java-9-Concurrency-Cookbook-Second-Edition,代码行数:14,代码来源:MyPublisher.java


注:本文中的java.util.concurrent.Flow.Subscriber类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。