导航菜单

页面标题

页面副标题

SpeedCash v6.5.1482 - StreamObservers.java 源代码

正在查看: SpeedCash v6.5.1482 应用的 StreamObservers.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package io.grpc.stub;

import com.google.common.base.Preconditions;
import io.grpc.ExperimentalApi;
import java.util.Iterator;

@ExperimentalApi("https://github.com/grpc/grpc-java/issues/4694")
public final class StreamObservers {

    public final class a implements Runnable {
        public boolean a;
        public final CallStreamObserver b;
        public final Iterator c;

        public a(CallStreamObserver callStreamObserver, Iterator it) {
            this.b = callStreamObserver;
            this.c = it;
        }

        @Override
        public void run() {
            if (this.a) {
                return;
            }
            while (this.b.isReady() && this.c.hasNext()) {
                this.b.onNext(this.c.next());
            }
            if (this.c.hasNext()) {
                return;
            }
            this.a = true;
            this.b.onCompleted();
        }
    }

    public static <V> void copyWithFlowControl(Iterator<V> it, CallStreamObserver<V> callStreamObserver) {
        Preconditions.checkNotNull(it, "source");
        Preconditions.checkNotNull(callStreamObserver, "target");
        callStreamObserver.setOnReadyHandler(new a(callStreamObserver, it));
    }

    public static <V> void copyWithFlowControl(Iterable<V> iterable, CallStreamObserver<V> callStreamObserver) {
        Preconditions.checkNotNull(iterable, "source");
        copyWithFlowControl(iterable.iterator(), callStreamObserver);
    }
}