Interface TOTorrent

All Known Subinterfaces:
TorrentUtils.ExtendedTorrent
All Known Implementing Classes:
DownloadManagerStateImpl.CachedStateWrapper, LWSTorrent, TorrentUtils.torrentDelegate, TOTorrentCreateImpl, TOTorrentDeserialiseImpl, TOTorrentImpl, TRHostExternalTorrent

public interface TOTorrent
  • Field Details

  • Method Details

    • getTorrentType

      int getTorrentType()
      Returns:
      One of the TT_ constants
    • getEffectiveTorrentType

      default int getEffectiveTorrentType()
      For hybrid torrents this indicates whether it is acting as a v1 or v2 swarm
      Returns:
    • isExportable

      boolean isExportable()
      Is the torrent in a fit state to export and share?
      Returns:
    • updateExportability

      boolean updateExportability(TOTorrent from)
      Propagate exportability from another torrent to this one - has to have same hash. Required because an internal torrent can become exportable whilst the 'saved' (unexportable) original torrent is sitting there untouched...
      Parameters:
      from -
      Returns:
    • getName

      byte[] getName()
      Get the name of the torrent
      Returns:
    • isSimpleTorrent

      boolean isSimpleTorrent()
      A "simple torrent" is one that consists of a single file on its own (i.e. not in a nested directory).
      Returns:
    • getComment

      byte[] getComment()
      Comment is an optional torrent property
      Returns:
    • setComment

      void setComment(String comment)
    • getCreationDate

      long getCreationDate()
      Gets the creation date of the torrent. Optional property, 0 returned if not set
      Returns:
    • setCreationDate

      void setCreationDate(long date)
    • getCreatedBy

      byte[] getCreatedBy()
    • setCreatedBy

      void setCreatedBy(byte[] cb)
    • isCreated

      boolean isCreated()
    • getAnnounceURL

      URL getAnnounceURL()
      A torrent must have a URL that identifies the tracker. This method returns it. However an extension to this exists to allow multiple trackers, and their backups, to be defined. See below
      Returns:
    • setAnnounceURL

      boolean setAnnounceURL(URL url)
      Parameters:
      url -
      Returns:
      true-changed; false-not changed
    • getAnnounceURLGroup

      TOTorrentAnnounceURLGroup getAnnounceURLGroup()
      When a group of sets of trackers is defined their URLs are accessed via this method
      Returns:
      the group, always present, which may have 0 members
    • isDecentralised

      boolean isDecentralised()
    • getPieces

      byte[][] getPieces() throws TOTorrentException
      This method provides access to the SHA1/SHA256 hash values (20/32 bytes each) that correspond to the pieces of the torrent.
      Returns:
    • setPieces

      void setPieces(byte[][] pieces) throws TOTorrentException
      This method exists to support the temporary discarding of piece hashes to conserver memory. It should only be used with care!
      Parameters:
      pieces -
      Throws:
      TOTorrentException
    • getPieceLength

      long getPieceLength()
      Returns the piece length used for the torrent
      Returns:
    • getNumberOfPieces

      int getNumberOfPieces()
    • getSize

      long getSize()
    • getFileCount

      int getFileCount()
    • getFiles

      TOTorrentFile[] getFiles()
      A torrent consists of one or more files. These are accessed via this method.
      Returns:
    • getHash

      byte[] getHash() throws TOTorrentException
      For a V1 or hybrid torrent this returns the SHA1 hash For a V2 only torrent it returns the truncated SHA256 hash
      Returns:
      Throws:
      TOTorrentException
    • getHashWrapper

      HashWrapper getHashWrapper() throws TOTorrentException
      convenience method to get a wrapped hash for performance purposes
      Returns:
      Throws:
      TOTorrentException
    • getFullHash

      byte[] getFullHash(int type) throws TOTorrentException
      Returns:
      SHA1 hash for v1/hybrid torrents, SHA256 hash for hybrid/v2 torrents
      Throws:
      TOTorrentException
    • getTruncatedHash

      default byte[] getTruncatedHash(int type) throws TOTorrentException
      Throws:
      TOTorrentException
    • selectHybridHashType

      TOTorrent selectHybridHashType(int type) throws TOTorrentException
      Throws:
      TOTorrentException
    • setHashOverride

      void setHashOverride(byte[] hash) throws TOTorrentException
      Throws:
      TOTorrentException
    • setSimpleTorrentDisabled

      TOTorrent setSimpleTorrentDisabled(boolean disabled) throws TOTorrentException
      Throws:
      TOTorrentException
    • isSimpleTorrentDisabled

      boolean isSimpleTorrentDisabled() throws TOTorrentException
      Throws:
      TOTorrentException
    • hasSameHashAs

      boolean hasSameHashAs(TOTorrent other)
      compares two torrents by hash
      Parameters:
      other -
      Returns:
    • getPrivate

      boolean getPrivate()
    • setPrivate

      void setPrivate(boolean _private) throws TOTorrentException
      Note - changing the private attribute CHANGES THE TORRENT HASH
      Parameters:
      _private -
      Throws:
      TOTorrentException
    • setSource

      void setSource(String source) throws TOTorrentException
      Note - changing the source CHANGES THE TORRENT HASH
      Parameters:
      source -
      Throws:
      TOTorrentException
    • getSource

      String getSource()
    • setAdditionalStringProperty

      void setAdditionalStringProperty(String name, String value)
      The additional properties are used for holding non-core data for Azureus' own user
      Parameters:
      name - name of the property (e.g. "encoding")
      value - value. This will be encoded with default encoding
    • getAdditionalStringProperty

      String getAdditionalStringProperty(String name)
    • setAdditionalByteArrayProperty

      void setAdditionalByteArrayProperty(String name, byte[] value)
    • getAdditionalByteArrayProperty

      byte[] getAdditionalByteArrayProperty(String name)
    • setAdditionalLongProperty

      void setAdditionalLongProperty(String name, Long value)
    • getAdditionalLongProperty

      Long getAdditionalLongProperty(String name)
    • setAdditionalListProperty

      void setAdditionalListProperty(String name, List value)
    • getAdditionalListProperty

      List getAdditionalListProperty(String name)
    • setAdditionalMapProperty

      void setAdditionalMapProperty(String name, Map value)
    • getAdditionalMapProperty

      Map getAdditionalMapProperty(String name)
    • getAdditionalProperty

      Object getAdditionalProperty(String name)
    • setAdditionalProperty

      void setAdditionalProperty(String name, Object value)
      set an arbitrary property. Make sure its compatible with bencoding!
    • removeAdditionalProperty

      void removeAdditionalProperty(String name)
    • removeAdditionalProperties

      void removeAdditionalProperties()
      remove all additional properties to clear out the torrent
    • serialiseToBEncodedFile

      void serialiseToBEncodedFile(File file) throws TOTorrentException
      This method will serialise a torrent using the standard "b-encoding" mechanism into a file
      Parameters:
      file -
      Throws:
      TOTorrentException
    • serialiseToMap

      Map serialiseToMap() throws TOTorrentException
      This method will serialise a torrent into a Map consistent with that used by the "b-encoding" routines defined elsewhere
      Returns:
      Throws:
      TOTorrentException
    • serialiseToXMLFile

      void serialiseToXMLFile(File file) throws TOTorrentException
      This method will serialise a torrent using an XML encoding to a file
      Parameters:
      file -
      Throws:
      TOTorrentException
    • addListener

      void addListener(TOTorrentListener l)
    • removeListener

      void removeListener(TOTorrentListener l)
    • getMonitor

      AEMonitor getMonitor()
    • print

      void print()
      A diagnostic method for dumping the tracker contents to "stdout"
    • getUTF8Name

      String getUTF8Name()
      Retrieves the utf8 name of the torrent ONLY if the torrent specified one in it's info map. Otherwise, returns null (you'll have to use getName() and decode it yourself)