org.gudy.azureus2.core3.disk.impl
Class DiskManagerFileInfoImpl

java.lang.Object
  extended by org.gudy.azureus2.core3.disk.impl.DiskManagerFileInfoImpl
All Implemented Interfaces:
CacheFileOwner, DiskManagerFileInfo

public class DiskManagerFileInfoImpl
extends java.lang.Object
implements DiskManagerFileInfo, CacheFileOwner

Author:
Olivier

Field Summary
protected  boolean skipped_internal
           
 
Fields inherited from interface org.gudy.azureus2.core3.disk.DiskManagerFileInfo
READ, ST_COMPACT, ST_LINEAR, ST_REORDER, ST_REORDER_COMPACT, WRITE
 
Fields inherited from interface com.aelitis.azureus.core.diskmanager.cache.CacheFileOwner
CACHE_MODE_EXPERIMENTAL, CACHE_MODE_NO_CACHE, CACHE_MODE_NORMAL
 
Constructor Summary
DiskManagerFileInfoImpl(DiskManagerHelper _disk_manager, java.lang.String _root_dir, java.io.File _relative_file, int _file_index, TOTorrentFile _torrent_file, int _storage_type)
           
 
Method Summary
 void addListener(DiskManagerFileInfoListener listener)
           
 void close()
           
 void dataChecked(long offset, long size)
           
 void dataWritten(long offset, long size)
           
 void flushCache()
           
 int getAccessMode()
           
 CacheFile getCacheFile()
           
 java.io.File getCacheFileControlFileDir()
           
 java.lang.String getCacheFileOwnerName()
           
 TOTorrentFile getCacheFileTorrentFile()
           
 int getCacheMode()
           
 DiskManager getDiskManager()
           
 long getDownloaded()
           
 DownloadManager getDownloadManager()
           
 long getETA()
           
 java.lang.String getExtension()
           
 java.io.File getFile(boolean follow_link)
           
 int getFirstPieceNumber()
           
 int getIndex()
           
 int getLastPieceNumber()
           
 long getLength()
           
 java.io.File getLink()
           
 int getNbPieces()
           
 int getPriority()
           
 int getReadBytesPerSecond()
           
 int getStorageType()
           
 TOTorrentFile getTorrentFile()
           
 int getWriteBytesPerSecond()
           
protected  boolean isLinked()
           
 boolean isSkipped()
           
 void moveFile(java.lang.String new_root_dir, java.io.File new_absolute_file, boolean link_only)
           
 DirectByteBuffer read(long offset, int length)
           
 void removeListener(DiskManagerFileInfoListener listener)
           
 void renameFile(java.lang.String new_name)
           
 void setAccessMode(int mode)
           
 void setDownloaded(long l)
           
 void setExtension(java.lang.String string)
           
 boolean setLink(java.io.File link_destination)
          Relink the file to the destination given - this method deals with if the file is part of a simple torrent or not (so it may set the download name to keep it in sync).
 boolean setLinkAtomic(java.io.File link_destination)
           
 void setPriority(int b)
           
 void setSkipped(boolean _skipped)
           
protected  void setSkippedInternal(boolean _skipped)
           
 boolean setStorageType(int type)
          Download must be stopped before calling this!
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

skipped_internal

protected boolean skipped_internal
Constructor Detail

DiskManagerFileInfoImpl

public DiskManagerFileInfoImpl(DiskManagerHelper _disk_manager,
                               java.lang.String _root_dir,
                               java.io.File _relative_file,
                               int _file_index,
                               TOTorrentFile _torrent_file,
                               int _storage_type)
                        throws CacheFileManagerException
Throws:
CacheFileManagerException
Method Detail

getCacheFileOwnerName

public java.lang.String getCacheFileOwnerName()
Specified by:
getCacheFileOwnerName in interface CacheFileOwner

getCacheFileTorrentFile

public TOTorrentFile getCacheFileTorrentFile()
Specified by:
getCacheFileTorrentFile in interface CacheFileOwner

getCacheFileControlFileDir

public java.io.File getCacheFileControlFileDir()
Specified by:
getCacheFileControlFileDir in interface CacheFileOwner

getCacheMode

public int getCacheMode()
Specified by:
getCacheMode in interface CacheFileOwner

flushCache

public void flushCache()
                throws java.lang.Exception
Specified by:
flushCache in interface DiskManagerFileInfo
Throws:
java.lang.Exception

moveFile

public void moveFile(java.lang.String new_root_dir,
                     java.io.File new_absolute_file,
                     boolean link_only)
              throws CacheFileManagerException
Throws:
CacheFileManagerException

renameFile

public void renameFile(java.lang.String new_name)
                throws CacheFileManagerException
Throws:
CacheFileManagerException

getCacheFile

public CacheFile getCacheFile()

setAccessMode

public void setAccessMode(int mode)
                   throws CacheFileManagerException
Throws:
CacheFileManagerException

getAccessMode

public int getAccessMode()
Specified by:
getAccessMode in interface DiskManagerFileInfo

getDownloaded

public long getDownloaded()
Specified by:
getDownloaded in interface DiskManagerFileInfo
Returns:

getExtension

public java.lang.String getExtension()
Specified by:
getExtension in interface DiskManagerFileInfo
Returns:

getFile

public java.io.File getFile(boolean follow_link)
Specified by:
getFile in interface DiskManagerFileInfo
Returns:

getTorrentFile

public TOTorrentFile getTorrentFile()
Specified by:
getTorrentFile in interface DiskManagerFileInfo

setLink

public boolean setLink(java.io.File link_destination)
Description copied from interface: DiskManagerFileInfo
Relink the file to the destination given - this method deals with if the file is part of a simple torrent or not (so it may set the download name to keep it in sync). If you just want a simple relink, use setLinkAtomic.

Specified by:
setLink in interface DiskManagerFileInfo
Returns:

setLinkAtomic

public boolean setLinkAtomic(java.io.File link_destination)
Specified by:
setLinkAtomic in interface DiskManagerFileInfo

getLink

public java.io.File getLink()
Specified by:
getLink in interface DiskManagerFileInfo

setStorageType

public boolean setStorageType(int type)
Description copied from interface: DiskManagerFileInfo
Download must be stopped before calling this!

Specified by:
setStorageType in interface DiskManagerFileInfo
Parameters:
type - one of ST_LINEAR or ST_COMPACT

getStorageType

public int getStorageType()
Specified by:
getStorageType in interface DiskManagerFileInfo

isLinked

protected boolean isLinked()

getFirstPieceNumber

public int getFirstPieceNumber()
Specified by:
getFirstPieceNumber in interface DiskManagerFileInfo
Returns:

getLastPieceNumber

public int getLastPieceNumber()
Specified by:
getLastPieceNumber in interface DiskManagerFileInfo

getLength

public long getLength()
Specified by:
getLength in interface DiskManagerFileInfo
Returns:

getIndex

public int getIndex()
Specified by:
getIndex in interface DiskManagerFileInfo

getNbPieces

public int getNbPieces()
Specified by:
getNbPieces in interface DiskManagerFileInfo
Returns:

setDownloaded

public void setDownloaded(long l)
Parameters:
l -

setExtension

public void setExtension(java.lang.String string)
Parameters:
string -

getPriority

public int getPriority()
Specified by:
getPriority in interface DiskManagerFileInfo
Returns:

setPriority

public void setPriority(int b)
Specified by:
setPriority in interface DiskManagerFileInfo
Parameters:
b -

isSkipped

public boolean isSkipped()
Specified by:
isSkipped in interface DiskManagerFileInfo
Returns:

setSkipped

public void setSkipped(boolean _skipped)
Specified by:
setSkipped in interface DiskManagerFileInfo
Parameters:
skipped -

setSkippedInternal

protected void setSkippedInternal(boolean _skipped)

getDiskManager

public DiskManager getDiskManager()
Specified by:
getDiskManager in interface DiskManagerFileInfo

getDownloadManager

public DownloadManager getDownloadManager()
Specified by:
getDownloadManager in interface DiskManagerFileInfo

dataWritten

public void dataWritten(long offset,
                        long size)

dataChecked

public void dataChecked(long offset,
                        long size)

read

public DirectByteBuffer read(long offset,
                             int length)
                      throws java.io.IOException
Specified by:
read in interface DiskManagerFileInfo
Throws:
java.io.IOException

getReadBytesPerSecond

public int getReadBytesPerSecond()
Specified by:
getReadBytesPerSecond in interface DiskManagerFileInfo

getWriteBytesPerSecond

public int getWriteBytesPerSecond()
Specified by:
getWriteBytesPerSecond in interface DiskManagerFileInfo

getETA

public long getETA()
Specified by:
getETA in interface DiskManagerFileInfo

close

public void close()
Specified by:
close in interface DiskManagerFileInfo

addListener

public void addListener(DiskManagerFileInfoListener listener)
Specified by:
addListener in interface DiskManagerFileInfo

removeListener

public void removeListener(DiskManagerFileInfoListener listener)
Specified by:
removeListener in interface DiskManagerFileInfo