/usr/include/libktorrent/interfaces/torrentfileinterface.h is in libktorrent-dev 1.3.1-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | /***************************************************************************
* Copyright (C) 2005 by Joris Guisson *
* joris.guisson@gmail.com *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#ifndef BTTORRENTFILEINTERFACE_H
#define BTTORRENTFILEINTERFACE_H
#include <qobject.h>
#include <qstring.h>
#include <ktorrent_export.h>
#include <util/constants.h>
class QTextCodec;
namespace bt
{
/**
* @author Joris Guisson
* @brief Interface for a file in a multifile torrent
*
* This class is the interface for a file in a multifile torrent.
*/
class KTORRENT_EXPORT TorrentFileInterface : public QObject
{
Q_OBJECT
public:
/**
* Constructor, set the path and size.
* @param index The index of the file in the torrent
* @param path The path
* @param size The size
*/
TorrentFileInterface(Uint32 index,const QString & path,Uint64 size);
virtual ~TorrentFileInterface();
enum FileType
{
UNKNOWN,
AUDIO,
VIDEO,
NORMAL
};
/// Get the index of the file
Uint32 getIndex() const {return index;}
/// Get the path of the file
QString getPath() const {return path;}
/// Get the path of a file on disk
QString getPathOnDisk() const {return path_on_disk;}
/// Get the mount point of the file on disk
QString getMountPoint() const;
/// Set the mount point
void setMountPoint(const QString & path) {mount_point = path;}
/**
* Set the actual path of the file on disk.
* @param p The path
*/
void setPathOnDisk(const QString & p) {path_on_disk = p;}
/// Get user modified path (if isn't changed, the normal path is returned)
QString getUserModifiedPath() const {return user_modified_path.isEmpty() ? path : user_modified_path;}
/// Set the user modified path
void setUserModifiedPath(const QString & p) {user_modified_path = p;}
/// Get the size of the file
Uint64 getSize() const {return size;}
/// Get the index of the first chunk in which this file lies
Uint32 getFirstChunk() const {return first_chunk;}
/// Get the last chunk of the file
Uint32 getLastChunk() const {return last_chunk;}
/// Get the offset at which the file starts in the first chunk
Uint64 getFirstChunkOffset() const {return first_chunk_off;}
/// Get how many bytes the files takes up of the last chunk
Uint64 getLastChunkSize() const {return last_chunk_size;}
/// See if the TorrentFile is null.
bool isNull() const {return path.isNull();}
/// Set whether we have to not download this file
virtual void setDoNotDownload(bool dnd) = 0;
/// Whether or not we have to not download this file
virtual bool doNotDownload() const = 0;
/// Checks if this file is multimedial
virtual bool isMultimedia() const = 0;
/// Gets the current priority of the torrent
virtual Priority getPriority() const {return priority;}
/// Sets the priority of the torrent
virtual void setPriority(Priority newpriority = NORMAL_PRIORITY) = 0;
/// Wheather to emit signal when dl status changes or not.
virtual void setEmitDownloadStatusChanged(bool show) = 0;
/// Emits signal dlStatusChanged. Use it only with FileSelectDialog!
virtual void emitDownloadStatusChanged() = 0;
/// Did this file exist before the torrent was loaded by KT
bool isPreExistingFile() const {return preexisting;}
/// Set whether this file is preexisting
void setPreExisting(bool pe) {preexisting = pe;}
/// Get the % of the file which is downloaded
float getDownloadPercentage() const;
/// See if preview is available
bool isPreviewAvailable() const {return preview;}
/// Set the unencoded path
void setUnencodedPath(const QList<QByteArray> up);
/// Change the text codec
void changeTextCodec(QTextCodec* codec);
/// Is this a video
bool isVideo() const {return filetype == VIDEO;}
/// Is this an audio file
bool isAudio() const {return filetype == AUDIO;}
protected:
Uint32 index;
QString path;
QString path_on_disk;
QString user_modified_path;
mutable QString mount_point;
Uint64 size;
Uint32 first_chunk;
Uint32 last_chunk;
Uint32 num_chunks_downloaded;
Priority priority;
bool preexisting;
bool emit_status_changed;
bool preview;
QList<QByteArray> unencoded_path;
Uint64 first_chunk_off;
Uint64 last_chunk_size;
mutable FileType filetype;
};
}
#endif
|