View Javadoc
1   /***
2    * 
3    */
4   package com.fernsroth.squashfs;
5   
6   import java.io.IOException;
7   
8   import com.fernsroth.easyio.IRandomAccessSource;
9   import com.fernsroth.squashfs.model.BaseFile;
10  import com.fernsroth.squashfs.model.Manifest;
11  
12  /***
13   * 
14   * @author Joseph M. Ferner (Near Infinity Corporation)
15   */
16  public interface DataProvider {
17  
18      /***
19       * @param source source manifest.
20       * @param bf the file to get the length from.
21       * @return the length of the file.
22       * @throws IOException 
23       */
24      long getLength(Manifest source, BaseFile bf) throws IOException;
25  
26      /***
27       * @param source source manifest.
28       * @param bf the file to get the ino from.
29       * @return the ino.
30       */
31      int getIno(Manifest source, BaseFile bf);
32  
33      /***
34       * @param source source manifest.
35       * @param bf the file name.
36       * @return the random access source.
37       * @throws IOException 
38       */
39      IRandomAccessSource getData(Manifest source, BaseFile bf)
40              throws IOException;
41  
42  }