
com.github.davidmoten.rx.internal.operators.OnSubscribeReader Maven / Gradle / Ivy
package com.github.davidmoten.rx.internal.operators;
import java.io.IOException;
import java.io.Reader;
import rx.Observer;
import rx.observables.SyncOnSubscribe;
public final class OnSubscribeReader extends SyncOnSubscribe {
private final Reader reader;
private final int size;
public OnSubscribeReader(Reader reader, int size) {
this.reader = reader;
this.size = size;
}
@Override
protected Reader generateState() {
return reader;
}
@Override
protected Reader next(Reader reader, Observer super String> observer) {
char[] buffer = new char[size];
try {
int count = reader.read(buffer);
if (count == -1)
observer.onCompleted();
else
observer.onNext(String.valueOf(buffer, 0, count));
} catch (IOException e) {
observer.onError(e);
}
return reader;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy