Class TorrentUtils.torrentDelegate

    • Field Detail

      • file

        private final java.io.File file
      • fluff_dirty

        private boolean fluff_dirty
      • last_pieces_read_time

        private long last_pieces_read_time
      • url_mod_last_pre

        private java.net.URL url_mod_last_pre
      • url_mod_last_post

        private java.net.URL url_mod_last_post
      • url_mod_last_seq

        private int url_mod_last_seq
      • urlg_mod_last_pre

        private java.util.List<java.net.URL> urlg_mod_last_pre
      • urlg_mod_last_seq

        private int urlg_mod_last_seq
    • Constructor Detail

      • torrentDelegate

        protected torrentDelegate​(TOTorrent _delegate,
                                  java.io.File _file)
    • Method Detail

      • getName

        public byte[] getName()
        Description copied from interface: TOTorrent
        Get the name of the torrent
        Specified by:
        getName in interface TOTorrent
        Returns:
      • 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:
      • 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:
      • 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
      • getAnnounceURLSupport

        public java.net.URL getAnnounceURLSupport()
      • setAnnounceURL

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

        protected void discardPieces​(long now,
                                     boolean force)
      • getPieces

        public byte[][] getPieces()
                           throws TOTorrentException
        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:
        Throws:
        TOTorrentException
      • restoreState

        protected boolean[] restoreState​(boolean do_pieces,
                                         boolean do_fluff)
                                  throws TOTorrentException
        monitor must be held before calling me
        Parameters:
        do_pieces -
        do_fluff -
        Throws:
        TOTorrentException
      • setPieces

        public void setPieces​(byte[][] pieces)
                       throws TOTorrentException
        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
        Throws:
        TOTorrentException
      • 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
      • 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
      • 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
      • 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
      • getRelationText

        public java.lang.String getRelationText()
        Description copied from class: LogRelation
        A short description of what your class holds that can be printed by the logger
        Overrides:
        getRelationText in class LogRelation
        Returns:
      • getQueryableInterfaces

        public java.lang.Object[] getQueryableInterfaces()
        Description copied from class: LogRelation
        Query this class for a reference to another class that it may hold
        Overrides:
        getQueryableInterfaces in class LogRelation
        Returns:
        If found, the class desired. Otherwise, null.
      • 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