|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.klomp.snark.Storage
public class Storage
Maintains pieces on disk. Can be used to store and retrieve pieces.
Field Summary | |
---|---|
static int |
MAX_PIECE_SIZE
bigger than this will be rejected |
static int |
MAX_PIECES
The maximum number of pieces in a torrent. |
static long |
MAX_TOTAL_SIZE
|
Constructor Summary | |
---|---|
Storage(I2PSnarkUtil util,
File baseFile,
MetaInfo metainfo,
StorageListener listener,
boolean preserveFileNames)
Creates a new storage based on the supplied MetaInfo. |
|
Storage(I2PSnarkUtil util,
File baseFile,
String announce,
List<List<String>> announce_list,
boolean privateTorrent,
StorageListener listener)
Creates a storage from the existing file or directory. |
Method Summary | |
---|---|
void |
check()
Creates (and/or checks) all files from the metainfo file list. |
void |
check(long savedTime,
BitField savedBitField)
Creates (and/or checks) all files from the metainfo file list. |
void |
cleanRAFs()
Close unused RAFs - call periodically |
void |
close()
Closes the Storage and makes sure that all RandomAccessFiles are closed. |
boolean |
complete()
Whether or not this storage contains all pieces if the MetaInfo. |
static String |
filterName(String name)
Removes 'suspicious' characters from the given file name. |
File |
getBase()
The base file or directory. |
String |
getBaseName()
The base file or directory name of the data, as specified in the .torrent file, but filtered to remove illegal characters. |
BitField |
getBitField()
The BitField that tells which pieces this storage contains. |
SortedSet<File> |
getDirectories()
Includes the base for a multi-file torrent. |
int[] |
getFilePriorities()
Get the file priorities array. |
List<File> |
getFiles()
Does not include directories. |
MetaInfo |
getMetaInfo()
Returns the MetaInfo associated with this Storage. |
ByteArray |
getPiece(int piece,
int off,
int len)
Returns a byte array containing a portion of the requested piece or null if the storage doesn't contain the piece yet. |
int[] |
getPiecePriorities()
Call setPriority() for all changed files first, then call this. |
boolean |
getPreserveFileNames()
|
int |
getPriority(int fileIndex)
|
int |
indexOf(File file)
Get index to pass to remaining(), getPriority(), setPriority() |
boolean |
isAllocating()
Disk allocation (ballooning) in progress. |
boolean |
isChanged()
Has the storage changed since instantiation? |
boolean |
isChecking()
File checking in progress. |
static void |
main(String[] args)
Create a metainfo. |
int |
needed()
How many pieces are still missing from this storage. |
boolean |
putPiece(PartialPiece pp)
Put the piece in the Storage if it is correct. |
long |
remaining(int fileIndex)
|
void |
reopen()
Doesn't really reopen the file descriptors for a restart. |
(package private) void |
setFilePriorities(int[] p)
Set the file priorities array. |
void |
setPriority(int fileIndex,
int pri)
Must call Snark.updatePiecePriorities() (which calls getPiecePriorities()) after calling this. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int MAX_PIECE_SIZE
public static final int MAX_PIECES
public static final long MAX_TOTAL_SIZE
Constructor Detail |
---|
public Storage(I2PSnarkUtil util, File baseFile, MetaInfo metainfo, StorageListener listener, boolean preserveFileNames)
baseFile
- the torrent data file or dirpreserveFileNames
- if true, do not remap names to a 'safe' charsetpublic Storage(I2PSnarkUtil util, File baseFile, String announce, List<List<String>> announce_list, boolean privateTorrent, StorageListener listener) throws IOException
announce
- may be nulllistener
- may be null
IOException
- when creating and/or checking files fails.Method Detail |
---|
public MetaInfo getMetaInfo()
public int needed()
public boolean complete()
public boolean isChanged()
public boolean isChecking()
public boolean isAllocating()
public int indexOf(File file)
file
- non-canonical path (non-directory)
public long remaining(int fileIndex)
fileIndex
- as obtained from indexOf
public int getPriority(int fileIndex)
fileIndex
- as obtained from indexOfpublic void setPriority(int fileIndex, int pri)
fileIndex
- as obtained from indexOfpri
- default 0; <0 to disablepublic int[] getFilePriorities()
void setFilePriorities(int[] p)
p
- may be nullpublic int[] getPiecePriorities()
public BitField getBitField()
public String getBaseName()
public boolean getPreserveFileNames()
public void check() throws IOException
IOException
public void check(long savedTime, BitField savedBitField) throws IOException
IOException
public void reopen() throws IOException
IOE
- on fail
IOException
public static String filterName(String name)
public File getBase()
public List<File> getFiles()
public SortedSet<File> getDirectories()
public void close() throws IOException
close
in interface Closeable
IOException
public ByteArray getPiece(int piece, int off, int len) throws IOException
IOException
public boolean putPiece(PartialPiece pp) throws IOException
IOException
- when some storage related error occurs.public void cleanRAFs()
public static void main(String[] args)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |