Class TRHostExternalTorrent

  • All Implemented Interfaces:
    TOTorrent

    public class TRHostExternalTorrent
    extends java.lang.Object
    implements TOTorrent
    • Field Detail

      • name

        private final byte[] name
      • hash

        private final byte[] hash
      • announce_url

        private final java.net.URL announce_url
      • additional_properties

        protected final java.util.Map additional_properties
      • this_mon

        protected final AEMonitor this_mon
    • Constructor Detail

      • TRHostExternalTorrent

        protected TRHostExternalTorrent​(byte[] _hash,
                                        java.net.URL _announce_url)
    • Method Detail

      • getTorrentType

        public int getTorrentType()
        Specified by:
        getTorrentType in interface TOTorrent
        Returns:
        One of the TT_ constants
      • isExportable

        public boolean isExportable()
        Description copied from interface: TOTorrent
        Is the torrent in a fit state to export and share?
        Specified by:
        isExportable in interface TOTorrent
        Returns:
      • updateExportability

        public boolean updateExportability​(TOTorrent from)
        Description copied from interface: TOTorrent
        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...
        Specified by:
        updateExportability in interface TOTorrent
        Returns:
      • getName

        public byte[] getName()
        Description copied from interface: TOTorrent
        Get the name of the torrent
        Specified by:
        getName in interface TOTorrent
        Returns:
      • getUTF8Name

        public java.lang.String getUTF8Name()
        Description copied from interface: TOTorrent
        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)
        Specified by:
        getUTF8Name in interface TOTorrent
      • isSimpleTorrent

        public boolean isSimpleTorrent()
        Description copied from interface: TOTorrent
        A "simple torrent" is one that consists of a single file on its own (i.e. not in a nested directory).
        Specified by:
        isSimpleTorrent in interface TOTorrent
        Returns:
      • getComment

        public byte[] getComment()
        Description copied from interface: TOTorrent
        Comment is an optional torrent property
        Specified by:
        getComment in interface TOTorrent
        Returns:
      • setComment

        public void setComment​(java.lang.String comment)
        Specified by:
        setComment in interface TOTorrent
      • getCreationDate

        public long getCreationDate()
        Description copied from interface: TOTorrent
        Gets the creation date of the torrent. Optional property, 0 returned if not set
        Specified by:
        getCreationDate in interface TOTorrent
        Returns:
      • setCreatedBy

        public void setCreatedBy​(byte[] cb)
        Specified by:
        setCreatedBy in interface TOTorrent
      • getAnnounceURL

        public java.net.URL getAnnounceURL()
        Description copied from interface: TOTorrent
        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
        Specified by:
        getAnnounceURL in interface TOTorrent
        Returns:
      • setAnnounceURL

        public boolean setAnnounceURL​(java.net.URL url)
        Specified by:
        setAnnounceURL in interface TOTorrent
        Returns:
        true-changed; false-not changed
      • getAnnounceURLGroup

        public TOTorrentAnnounceURLGroup getAnnounceURLGroup()
        Description copied from interface: TOTorrent
        When a group of sets of trackers is defined their URLs are accessed via this method
        Specified by:
        getAnnounceURLGroup in interface TOTorrent
        Returns:
        the group, always present, which may have 0 members
      • addTorrentAnnounceURLSet

        public void addTorrentAnnounceURLSet​(java.net.URL[] urls)
      • getPieces

        public byte[][] getPieces()
        Description copied from interface: TOTorrent
        This method provides access to the SHA1/SHA256 hash values (20/32 bytes each) that correspond to the pieces of the torrent.
        Specified by:
        getPieces in interface TOTorrent
        Returns:
      • setPieces

        public void setPieces​(byte[][] b)
        Description copied from interface: TOTorrent
        This method exists to support the temporary discarding of piece hashes to conserver memory. It should only be used with care!
        Specified by:
        setPieces in interface TOTorrent
      • getPieceLength

        public long getPieceLength()
        Description copied from interface: TOTorrent
        Returns the piece length used for the torrent
        Specified by:
        getPieceLength in interface TOTorrent
        Returns:
      • getSize

        public long getSize()
        Specified by:
        getSize in interface TOTorrent
      • getFiles

        public TOTorrentFile[] getFiles()
        Description copied from interface: TOTorrent
        A torrent consists of one or more files. These are accessed via this method.
        Specified by:
        getFiles in interface TOTorrent
        Returns:
      • getSource

        public java.lang.String getSource()
        Specified by:
        getSource in interface TOTorrent
      • hasSameHashAs

        public boolean hasSameHashAs​(TOTorrent other)
        Description copied from interface: TOTorrent
        compares two torrents by hash
        Specified by:
        hasSameHashAs in interface TOTorrent
        Returns:
      • setAdditionalStringProperty

        public void setAdditionalStringProperty​(java.lang.String name,
                                                java.lang.String value)
        Description copied from interface: TOTorrent
        The additional properties are used for holding non-core data for Azureus' own user
        Specified by:
        setAdditionalStringProperty in interface TOTorrent
        Parameters:
        name - name of the property (e.g. "encoding")
        value - value. This will be encoded with default encoding
      • setAdditionalLongProperty

        public void setAdditionalLongProperty​(java.lang.String name,
                                              java.lang.Long value)
        Specified by:
        setAdditionalLongProperty in interface TOTorrent
      • setAdditionalProperty

        public void setAdditionalProperty​(java.lang.String name,
                                          java.lang.Object value)
        Description copied from interface: TOTorrent
        set an arbitrary property. Make sure its compatible with bencoding!
        Specified by:
        setAdditionalProperty in interface TOTorrent
      • setAdditionalListProperty

        public void setAdditionalListProperty​(java.lang.String name,
                                              java.util.List value)
        Specified by:
        setAdditionalListProperty in interface TOTorrent
      • setAdditionalMapProperty

        public void setAdditionalMapProperty​(java.lang.String name,
                                             java.util.Map value)
        Specified by:
        setAdditionalMapProperty in interface TOTorrent
      • getAdditionalMapProperty

        public java.util.Map getAdditionalMapProperty​(java.lang.String name)
        Specified by:
        getAdditionalMapProperty in interface TOTorrent
      • getAdditionalProperty

        public java.lang.Object getAdditionalProperty​(java.lang.String name)
        Specified by:
        getAdditionalProperty in interface TOTorrent
      • removeAdditionalProperties

        public void removeAdditionalProperties()
        Description copied from interface: TOTorrent
        remove all additional properties to clear out the torrent
        Specified by:
        removeAdditionalProperties in interface TOTorrent
      • print

        public void print()
        Description copied from interface: TOTorrent
        A diagnostic method for dumping the tracker contents to "stdout"
        Specified by:
        print in interface TOTorrent