/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package tachyon.client; import java.io.IOException; import java.io.OutputStream; import tachyon.conf.UserConf; /** * <code>OutStream</code> is the base output stream class for TachyonFile streaming output methods. * It can only be gotten by calling the methods in <code>tachyon.client.TachyonFile</code>, but * can not be initialized by the client code. */ public abstract class OutStream extends OutputStream { protected final UserConf USER_CONF = UserConf.get(); protected final TachyonFile FILE; protected final TachyonFS TFS; protected final WriteType WRITE_TYPE; /** * @param file * the output file of the OutStream * @param writeType * the OutStream's write type */ OutStream(TachyonFile file, WriteType writeType) { FILE = file; TFS = FILE.TFS; WRITE_TYPE = writeType; } /** * Cancel the write operations to the OutStream * * @throws IOException */ public abstract void cancel() throws IOException; @Override public abstract void close() throws IOException; @Override public abstract void flush() throws IOException; @Override public abstract void write(byte b[]) throws IOException; @Override public abstract void write(byte b[], int off, int len) throws IOException; @Override public abstract void write(int b) throws IOException; }