Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Lightweight Bartering Grid
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## lbg.protocol.data
Class TorrentGridData

    java.lang.Object
      lbg.protocol.data.GridData
          lbg.protocol.data.TorrentGridData

All Implemented Interfaces:
  java.io.Serializable, java.lang.Comparable<GridData>, org.gudy.azureus2.core3.download.DownloadManagerListener

    public class TorrentGridData

extends GridData
implements org.gudy.azureus2.core3.download.DownloadManagerListener

Grid data class where the data is shared using BitTorrent. The file becomes available as soon as this object is instanciated.
This heavily relies on Azureus internals and could be broken with numerous versions of Azureus. (it actually broke on 2.5) I should find another library (which doesn't seem to exist) or code my own (which I don't have time for).

Author:
  Xavier Dalem
See Also:
  Serialized Form

Field Summary

Fields inherited from class lbg.protocol.data.GridData
`client_hostname, HASHING_ALGORITHM, id, size`

Constructor Summary
`protected` | `TorrentGridData(java.lang.String id, long size, java.util.Map az_serialized_map, byte[] checksum, org.gudy.azureus2.core3.download.DownloadManager manager)` Create a Torrent Grid Data from an id and a file

Method Summary
`void` | `completionChanged(org.gudy.azureus2.core3.download.DownloadManager manager, boolean bCompleted)`
`void` | `downloadComplete(org.gudy.azureus2.core3.download.DownloadManager manager)`
`void` | `filePriorityChanged(org.gudy.azureus2.core3.download.DownloadManager download, org.gudy.azureus2.core3.disk.DiskManagerFileInfo file)`
`byte[]` | `getChecksum()` Get checksum from data.
`java.io.InputStream` | `getInputStream()` Get an input stream to read the data
`void` | `positionChanged(org.gudy.azureus2.core3.download.DownloadManager download, int oldPosition, int newPosition)`
`void` | `stateChanged(org.gudy.azureus2.core3.download.DownloadManager manager, int state)`
`void` | `toFile(java.io.File file)` Save data in a file.
`java.lang.String` | `toString()`

Methods inherited from class lbg.protocol.data.GridData
`compareTo`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### TorrentGridData

    protected TorrentGridData(java.lang.String id,
                              long size,
                              java.util.Map az_serialized_map,
                              byte[] checksum,
                              org.gudy.azureus2.core3.download.DownloadManager manager)
                       throws GridException

  Create a Torrent Grid Data from an id and a file

  Parameters:
    `id` - The file ID. For restrictions on this, see GridData
    `az_serialized_map` - An azureus-serialized TOTorrent map. Such a map can be got from TOTorrent.serialiseToMap() and used with TOTorrentFactory.deserialiseFromMap(), after which you have to write the file as a .torrent on disk then reload it wih a TorrentDownloader because, somehow, the TorrentDownloader has no method to use an existing torrent and rather finds the data by himself...
    `checksum` - The GridData.HASHING_ALGORITHM checksum for data
    `manager` - The Download manager that was used to share the data when it was first tracked. This won't be used by `toFile(File)` and only serves as a way to keep all useful information on the tracking side.
  Throws:
    `GridException`

Method Detail

### toFile

    public void toFile(java.io.File file)
                throws GridException

  Description copied from class: `GridData`
  Save data in a file. This call is blocking.

  Specified by:
    `toFile` in class `GridData`
  Parameters:
    `file` - The file where to put data
  Throws:
    `GridException`

### getChecksum

    public byte[] getChecksum()
                       throws GridException

  Description copied from class: `GridData`
  Get checksum from data. It must be the checksum from the real data, not of data and combined details like it is the case for torrents.
  The used algorithm is specified by HASHING_ALGORITHM.

  Specified by:
    `getChecksum` in class `GridData`
  Throws:
    `GridException`
  See Also:
    `GridData.HASHING_ALGORITHM`

### getInputStream

    public java.io.InputStream getInputStream()
                                       throws GridException

  Description copied from class: `GridData`
  Get an input stream to read the data

  Specified by:
    `getInputStream` in class `GridData`
  Throws:
    `GridException` - If the file doesn't exist

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`

### stateChanged

    public void stateChanged(org.gudy.azureus2.core3.download.DownloadManager manager,
                             int state)

  Specified by:
    `stateChanged` in interface `org.gudy.azureus2.core3.download.DownloadManagerListener`

### downloadComplete

    public void downloadComplete(org.gudy.azureus2.core3.download.DownloadManager manager)

  Specified by:
    `downloadComplete` in interface `org.gudy.azureus2.core3.download.DownloadManagerListener`

### completionChanged

    public void completionChanged(org.gudy.azureus2.core3.download.DownloadManager manager,
                                  boolean bCompleted)

  Specified by:
    `completionChanged` in interface `org.gudy.azureus2.core3.download.DownloadManagerListener`

### positionChanged

    public void positionChanged(org.gudy.azureus2.core3.download.DownloadManager download,
                                int oldPosition,
                                int newPosition)

  Specified by:
    `positionChanged` in interface `org.gudy.azureus2.core3.download.DownloadManagerListener`

### filePriorityChanged

    public void filePriorityChanged(org.gudy.azureus2.core3.download.DownloadManager download,
                                    org.gudy.azureus2.core3.disk.DiskManagerFileInfo file)

  Specified by:
    `filePriorityChanged` in interface `org.gudy.azureus2.core3.download.DownloadManagerListener`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Lightweight Bartering Grid
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

> Copyright (c) 2005-2008, Cyril Briquet, parts Xavier Dalem.