All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tech.ytsaurus.client.FileWriterImpl Maven / Gradle / Ivy

package tech.ytsaurus.client;

import java.util.concurrent.CompletableFuture;

import com.google.protobuf.Parser;
import tech.ytsaurus.client.rpc.RpcStreamConsumer;
import tech.ytsaurus.rpcproxy.TRspWriteFile;

class FileWriterImpl extends StreamWriterImpl implements FileWriter, RpcStreamConsumer {
    FileWriterImpl(long windowSize, long packetSize) {
        super(windowSize, packetSize);
    }

    @Override
    protected Parser responseParser() {
        return TRspWriteFile.parser();
    }

    public CompletableFuture startUpload() {
        return startUpload.thenApply((unused) -> this);
    }

    @Override
    public boolean write(byte[] data, int offset, int len) {
        if (data != null) {
            byte[] newData = new byte[len - offset];
            System.arraycopy(data, offset, newData, 0, len);
            data = newData;
        }

        return push(data);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy