/* * The Alluxio Open Foundation licenses this work under the Apache License, version 2.0 * (the "License"). You may not use this work except in compliance with the License, which is * available at www.apache.org/licenses/LICENSE-2.0 * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied, as more fully set forth in the License. * * See the NOTICE file distributed with this work for information regarding copyright ownership. */ package alluxio.client; import java.io.IOException; import java.io.OutputStream; import javax.annotation.concurrent.NotThreadSafe; /** * An abstraction of the output stream API in Alluxio to write data to a file or a block. In * addition to extending abstract class {@link OutputStream} as the basics, it also keeps counting * the number of bytes written to the output stream, and extends {@link Cancelable} to abort the * writes. */ @NotThreadSafe public abstract class AbstractOutStream extends OutputStream implements Cancelable { /** The number of bytes written. */ protected long mBytesWritten = 0; /** * @return the number of bytes written to this stream * @deprecated this method will not work if more than MAX_INT bytes are written; to get a count of * bytes written, wrap this stream in a counting output stream such as * org.apache.commons.io.output.CountingOutputStream */ @Deprecated public int getBytesWritten() { // Cast to int to preserve backwards compatibility. In 2.0 we should change this to long so that // it can be correct. return (int) mBytesWritten; } /** * Aborts the output stream. */ @Override public void cancel() throws IOException {} }