001/** 002 * 003 * Licensed to the Apache Software Foundation (ASF) under one 004 * or more contributor license agreements. See the NOTICE file 005 * distributed with this work for additional information 006 * regarding copyright ownership. The ASF licenses this file 007 * to you under the Apache License, Version 2.0 (the 008 * "License"); you may not use this file except in compliance 009 * with the License. You may obtain a copy of the License at 010 * 011 * http://www.apache.org/licenses/LICENSE-2.0 012 * 013 * Unless required by applicable law or agreed to in writing, software 014 * distributed under the License is distributed on an "AS IS" BASIS, 015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 016 * See the License for the specific language governing permissions and 017 * limitations under the License. 018 */ 019package org.apache.hadoop.hbase.io.hfile; 020 021import org.apache.hadoop.fs.Path; 022import org.apache.hadoop.hbase.fs.HFileSystem; 023import org.apache.hadoop.hbase.io.FSDataInputStreamWrapper; 024import org.apache.yetus.audience.InterfaceAudience; 025 026/** 027 * Carries the information on some of the meta data about the HFile Reader 028 */ 029@InterfaceAudience.Private 030public class ReaderContext { 031 @InterfaceAudience.Private 032 public enum ReaderType { 033 PREAD, 034 STREAM 035 } 036 private final Path filePath; 037 private final FSDataInputStreamWrapper fsdis; 038 private final long fileSize; 039 private final HFileSystem hfs; 040 private final boolean primaryReplicaReader; 041 private final ReaderType type; 042 043 public ReaderContext(Path filePath, FSDataInputStreamWrapper fsdis, long fileSize, 044 HFileSystem hfs, boolean primaryReplicaReader, ReaderType type) { 045 this.filePath = filePath; 046 this.fsdis = fsdis; 047 this.fileSize = fileSize; 048 this.hfs = hfs; 049 this.primaryReplicaReader = primaryReplicaReader; 050 this.type = type; 051 } 052 053 public Path getFilePath() { 054 return this.filePath; 055 } 056 057 public FSDataInputStreamWrapper getInputStreamWrapper() { 058 return this.fsdis; 059 } 060 061 public long getFileSize() { 062 return this.fileSize; 063 } 064 065 public HFileSystem getFileSystem() { 066 return this.hfs; 067 } 068 069 public boolean isPrimaryReplicaReader() { 070 return this.primaryReplicaReader; 071 } 072 073 public ReaderType getReaderType() { 074 return this.type; 075 } 076}