| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
Implemented BitTorrent/http/ftp integrated download.
I've rewritten lots of files and now some headers have forward
class declarations to reduce compile time.
The implementation is extremely alpha stage, I recommend to use this
for testing purpose only.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To divide TorrentMan into 6 classes: BtContext, BtRuntime,
PeerStorage, PieceStorage, BtAnnounce and BtProgressInfoFile
* src/TrackerWatcherComand.h: Made subclass of
BtContextAwareCommand.
* src/SeedCheckCommand.cc: Use pieceStorage, btRuntime
* src/PeerAbstractCommand.h: Made subclass of
BtContextAwareCommand.
* src/PeerAbstractCommand.cc: Use btRuntime.
* src/BtContextAwareCommand.h: New class.
* src/FileEntry.h: Added accessor methods for following
variables.
(path): Made private.
(length): Made private.
(offset): Made private.
(extracted): Made private.
(requested): Made private.
(FileEntries): New definition.
(FileEntryHandle): New definition.
* src/FileEntry.cc: New file.
* src/HaveEraseCommand.h: Made subclass of
BtContextAwareCommand.
* src/HaveEraseCommand.cc: Use btRuntime, pieceStorage.
* src/PeerChokeCommand.h: Made subclass of
BtContextAwareCommand.
* src/PeerChokeCommand.cc: Use btRuntime, peerStorage,
pieceStorage.
* src/PieceStorage.h: New file.
* src/PeerInteractionCommand.h: Use btContext.
* src/PeerInteractionCommand.cc: Use pieceStorage, peerStorage,
btRuntime.
* src/DefaultBtProgressInfoFile.h: New file.
* src/DefaultBtProgressInfoFile.cc: New file.
* src/File.cc
(Util.h): New include.
(mkdirs): New function.
* src/MultiDiskAdaptor.h
(mkdir): New function.
* src/PeerListProcessor.h
(Peers): Removed.
* src/PeerInteraction.h
(torrentMan): Removed.
(btContext): New variable.
(peerStorage): New variable.
(pieceStorage): New variable.
(btAnnounce): New variable.
(getTorrentMan): Removed.
(getBtContext): New function.
* src/PeerInteraction.cc: Use btContext, peerStorage,
pieceStorage,
btAnnounce.
* src/HandshakeMessage.h
(TorrentMan.h): Removed.
* src/HandshakeMessage.cc: Use btContext.
* src/DefaultBtAnnounce.cc: New file.
* src/MultiDiskWriter.cc: Use the accessor methods of FileEntry.
* src/DefaultPieceStorage.cc: New file.
* src/DefaultBtContext.h: New file.
* src/TorrentRequestInfo.cc: Use btContext, pieceStorage.
Use the accessor methods of FileEntry.
* src/CookieBox.cc: Updated to use Util::slice().
* src/PieceMessage.cc: Use btContext, pieceStorage.
* src/common.h (SharedHandle.h): New include.
* src/PeerMessage.cc (PeerMessage): Added btContext,
peerStorage,
pieceStorage.
* src/TorrentAutoSaveCommand.h: Made subclass of
BtContextAwareCommand.
* src/DiskAdaptor.h
(topDir): Removed.
(getFileEntryFromPath): Changed the return type to
FileEntryHandle.
(setTopDir): Removed.
(getTopDir): Removed.
* src/BtContext.h: New file.
* src/DefaultPeerStorage.h: New file.
* src/PieceMessage.h (TorrentMan.h): Removed.
* src/RequestMessage.h (TorrentMan.h): Removed.
* src/TorrentDownloadEngine.h
(uploadLength): New variable.
(btContext): New variable.
(btRuntime): New variable.
(pieceStorage): New variable.
(peerStorage): New variable.
(btAnnounce): New variable.
(btProgressInfoFile): New variable.
(torrentMan): Removed.
(setBtContext): New function.
* src/TorrentDownloadEngine.cc: Use BtContext, BtRuntime,
pieceStorage,
peerStorage, btAnnounce, btProgressInfoFile.
* src/Piece.h
(toString): New function.
(Pieces): New type definition.
* src/Peer.h
(active): New variable.
(Peer): Added active.
(activate): Set active to true.
(deactivate): Set active to false.
(isActive): New function.
(Peers): New type definition.
* src/DirectDiskAdaptor.cc
(getFilePath): Use the accessor methods of FileEntry.
* src/TorrentConsoleDownloadEngine.h
(afterEachIteration): New function.
* src/TorrentConsoleDownloadEngine.cc
(haltRequested): New variable.
(sendStatistics): Use pieceStorage, btRuntime.
(afterEachIteration): New function.
* src/AnnounceList: AnnounceTier->AnnounceTierHandle.
* src/Directry.h
(Directory): New function.
(DirectoryHandle): New type definition.
* src/BtProgressInfoFile.h: New file.
* src/RequestMessage.cc: Use pieceStorage.
* src/BtRuntime.h: New file.
* src/DefaultBtContext.cc: New file.
* src/BitfieldMan.h
(getCompletedLength): New function(private).
(getCompletedLength): New function.
(getFilteredCompletedLength): New function.
* src/BitfieldMan.h
(getCompletedLength): New function(private).
(getCompletedLength): New function.
(getFilteredCompletedLength): New function.
* src/MultiDiskAdaptor.cc
(mkdir): New function.
(openFile): Call mkdir().
(initAndOpenFile): Call mkdir().
* src/CancelMessage.h
(TorrentMan.h): Removed.
* src/RejectMessage.h
(TorrentMan.h): Removed.
* src/DownloadEngineFactory.cc
(DefaultPieceStorage.h): New include.
(DefaultPeerStorage.h): New include.
(DefaultBtAnnounce.h): New include.
(DefaultBtProgressInfoFile.h): New include.
(newTorrentConsoleEngine): Rewritten.
* src/ShareRatioSeedCriteria.h
(torrentMan): Removed.
(btContext): New variable.
(peerStorage): New variable.
(btRuntime): New variable.
(evaluate): Use btContext, btRuntime, peerStorage.
* src/AnnounceTier.h: New file.
* src/BtAnnounce.h: New file.
* src/BtRegistry.h: New file.
* src/PeerInitiateConnectionCommand.h: Added btContext.
* src/PeerConnection.h (TorrentMan.h): Removed.
* src/PeerMessageFactory.cc: Use btContext, pieceStorage.
* src/Util.h
(slice): Added an argument.
* src/Util.cc
(slice): Added an argument to control whether trim is made or
not.
* src/PeerStorage.h: New file.
* src/BtRegistry.cc: New file.
* src/TrackerUpdateCommand.h: Made subclass of
BtContextAwareCommand.
* src/CopyDiskAdaptor.cc: Use the accessor methods of FileEntry.
* src/MultiDiskWriter.h: FileEntry -> FileEntryHandle
* src/PeerListenCommand.cc: Use btRuntime, peerStorage,
btContext.
* src/TorrentRequestInfo.h
(e): Removed.
(showFileEntry): Added an argument.
(getDownloadEngine): Return 0.
* src/DefaultBtAnnounce.h: New file.
* src/TorrentAutoSaveCommand.cc: Use btRuntime,
btProgressInfoFile.
* src/TrackerWatcherComand.cc: Use btRuntime, btAnnounce,
* src/PeerMessageFactory.h
(btContext): New variable.
(pieceStorage): New variable.
* src/TrackerUpdateCommand.cc: Use btRuntime, peerStorage,
btContext,
btAnnounce.
* src/DiskAdaptor.cc
(DiskAdaptor): Removed topDir.
(~DiskAdaptor): Removed topDir.
* src/PeerListenCommand.h: Made subclass of
BtContextAwareCommand.
* src/SeedCheckCommand.h: Made subclass of
BtContextAwareCommand.
* src/File.h (mkdirs): New function.
* src/DefaultPeerStorage): New file.
* src/DownloadEngineFactory.h
(newTorrentConsoleEngine): Use btContext.
* src/BtContextAwareCommand.cc: New file.
* src/PeerInitiateConnectionCommand.cc: Use btRuntime,
peerStorage.
* src/PeerMessage.h
(btContext): New variable.
(peerStorage): New variable.
(pieceStorage): New variable.
(setBtContext): New function.
* src/Directry.cc
(Directory): New function.
(createDir): Do nothing if name.size() == 0.
* src/AnnounceList.h
(AnnounceTier): Removed.
(AnnounceTiers): Removed.
* src/DefaultPieceStorage.h: New file.
* src/Piece.cc (toString): New function.
To fix typo:
* src/main.cc (showVersion): Fixed typo.
To fix compile warning:
* src/DelegatingPeerListProcessor.cc
(canHandle): Added "return false".
|
| |
|
|
|
|
|
|
| |
* src/*.{h,cc}:
Added an exception to the license which allows linking with
OpenSSL.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To add --seed-time and --seed-ratio command-line option:
* src/Option.h (getAsDouble): New function.
* src/Option.cc (getAsDouble): New function.
* src/SeedCheckCommand.h: New class.
* src/SeedCheckCommand.cc: New class.
* src/DownloadEngineFactory.cc
(SeedCheckCommand.h): Included.
(UnionSeedCriteria.h): Included.
(TimeSeedCriteria.h): Included.
(ShareRatioSeedCriteria.h): Included.
(newTorrentConsoleEngine): Added the processing of seed option.
* src/SeedCriteria.h: New class.
* src/ShareRatioSeedCriteria.h: New class.
* src/TimeSeedCriteria.h: New class.
* src/UnionSeedCriteria.h: New class.
* src/prefs.h
(PREF_SEED_TIME): New definition.
(PREF_SEED_RATIO): New definition.
* src/main.cc
(showUsage): Added --seed-time and --seed-ratio option.
(main): Added --seed-time and --seed-ratio option.
Made default log file name "/dev/null".
* src/SharedHandle.h
(SharedHandle): Copy constructor. Made it assignable from the
SharedHandle of the subclasses.
(operator=): Made it assignable from the SharedHandle of the
subclasses.
(getRefCount): New function.
To add notice log level and the switch to write log to stdout.
This
switch is configurable per log level.
* src/Logger.h
(notice): New function.
(LEVEL): Added NOTICE. Assigned an explicit value to each log
level
constant.
* src/LogFactory.cc
(getInstance): The use of NullLogger was removed. A log message
with
notice log level was made written to stdout along with log file.
* src/NullLogger.h
(notice): New function.
* src/SimpleLogger.h
(writeHeader): Added the 'file' argument.
(writeLog): Added the 'file' argument.
(writeFile): New function.
(stdoutField): New variable.
(SimpleLogger): Removed the default constructor.
(SimpleLogger): Made the default value of logfile 0.
(debug): Added 'virtual' keyword.
(info): Added 'virtual' keyword.
(warn): Added 'virtual' keyword.
(error): Added 'virtual' keyword.
(notice): New function.
(setStdout): New function.
* src/SimpleLogger.cc
(WRITE_LOG): Replaced writeLog with writeFile.
(WRITE_LOG_EX): Replaced writeLog with writeFile.
(SimpleLogger): Removed the default constructor.
(setStdout): New function.
(writeLog): Added the handling of NOTICE log level.
(writeFile): New function.
(notice): New function.
* src/TorrentMan.h: Updated doc.
* src/BitfieldMan.h: Updated doc.
* src/TrackerWatcherCommand.cc
(execute): Return true if error occurred in the request to the
tracker
and halt is requested.
* src/TrackerUpdateCommand.cc
(execute): Return true if error occurred in the request to the
tracker
and halt is requested.
* src/TorrentConsoleDownloadEngine.h
(onSelectiveDownloadingCompletes): Removed.
* src/TorrentConsoleDownloadEngine.cc
(onSelectiveDownloadingCompletes): Removed.
* src/TorrentDownloadEngine.h
(onEndOfRun): Added 'virtual' keyword.
(afterEachIteration): Removed.
(onSelectiveDownloadingCompletes): Removed.
* src/TorrentDownloadEngine.cc
(onEndOfRun): Removed filenameFixed.
(afterEachIteration): Removed.
* src/TorrentMan.cc
(completePiece): Call onDownloadComplete here.
(onDownloadComplete): Added 2 log messages.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To add --select-file command-line option:
* src/Util.cc
(unfoldRange): New function.
(getNum): New function.
(unfoldSubRange): New function
* src/main.cc
(showUsage): Added help message.
(main): Added --select-file command-line option.
2006-04-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To deploy upload rate based choking algorithm:
* src/PeerInteractionCommand.cc
(PeerInteractionCommand): Add peer to TorrentMan::activePeers to
track
peer currently used.
(decideChoking): Deleted the choke/unchoke decision algorithm
when
download completes. Simplified.
(receiveMessage): Updated.
* src/TorrentMan.h
(activePeers): New variable.
(addActivePeer): New function.
(getActivePeers): New function.
(deleteActivePeer): New function.
* src/TorrentMan.cc
(addPeer): deleteOldErrorPeers is moved to the begining of the
function
* src/PeerAbstractCommand.cc
(onAbort): Use peer->resetStatus().
* src/main.cc
(PeerChokeCommand.h): Included.
(main): Added the instance of ChokingCommand to the command
queue.
* src/Peer.h
(amChoking): Renamed from amChocking
(chokingRequired): New variable.
(optUnchoking): New variable.
(deltaUpload): New variable.
(deltaDownload): New variable.
(addDeltaUpload): New function.
(resetDeltaUpload): New function.
(addDeltaDownload): New function.
(resetDeltaDownload): New function.
(addPeerUpload): Added a call to addDeltaUpload.
(addPeerDownload): Added a call to addDeltaDownload.
* src/Peer.cc
(shouldBeChoking): Renamed from shouldChoke.
(resetStatus): New function.
* src/PeerChokeCommand.h: New class.
* src/PeerChokeCommand.cc: New class.
To add lazy upload speed limiter:
* src/TorrentConsoleDownloadEngine.h: Moved the variables for
statistics calculation to TorrentDownloadEngine.
* src/TorrentConsoleDownloadEngine.cc
(sendStatistics): Renamed from printStatistics.
(initStatistics): Removed. Moved to TorrentDownloadEngine.
(calculateSpeed): Removed. Moved to TorrentDownloadEngine.
(calculateStatistics): Removed. Moved to TorrentDownloadEngine.
* src/TorrentDownloadEngine.h: Added the variables for
statistics
calculation.
(sendStatistics): New function as pure virtual function.
(getUploadSpeed): New function.
* src/TorrentDownloadEngine.cc
(initStatistics): New function.
(calculateSpeed): New function.
(calculateStatistics): New function.
* src/SendMessageQueue.h
(uploadLength): New variable.
(send): Added an argument.
(setUploadLimit): New function.
(getUploadLimit): New function.
* src/SendMessageQueue.cc
(send): Added upload speed limiter.
* src/prefs.h
(PREF_UPLOAD_LIMIT): New definition.
* src/PeerInteractionCommand.cc
(PeerInteractionCommand): Set upload speed limit to
sendMessageQueue.
* src/main.cc
(main): Added --upload-limit option
For bug fixes:
* src/main.cc
(showUsage): Corrected --listen-port help
Other changes:
* src/TorrentMan.cc
(getPeer): Return nullPeer if connection is grather than
MAX_PEER_UPDATE(15) in order to leave space for incoming peers.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* src/TorrentConsoleDownloadEngine.cc
(onPartialDownloadingCompletes): Renamed as
onSelectiveDownloadingCompletes.
(onSelectiveDownloadingCompletes): Updated message.
To add DiskAdaptor which abstract DiskWriter family:
* src/PeerConnection.cc: Use diskAdaptor instead of diskWriter.
* src/PeerInteractionCommand.cc: Use diskAdaptor instead of
diskWriter.
* src/BitfieldMan.cc (isAllBitSet): bug fix.
* src/TorrentMan.cc : Included CopyDiskAdaptor.h,
DirectDiskAdaptor.h,
MultiDiskAdaptor.h.
(readFileEntry): Changed its arguments.
(setup): setupDiskWriter is merged into this function.
(setupDiskWriter): Removed.
(setFileFilter): New function.
(readFileEntryFromMetaInfoFile): Updated according to the
changes
made in readFileEntry.
(getFilePath): Removed.
(getTempFilePath): Removed.
(getSegmentFilePath): Updated due to the removal of getFilePath.
(fixFilename): Removed.
(copySingleFile): Removed.
(splitMultiFile): Removed.
(deleteTempFile): Removed.
(setFileEntriesToDownload): Removed.
(isPartialDownloadingMode): Renamed as
isSelectiveDownloadingMode.
(isSelectiveDownloadingMode): New function.
(setAllMultiFileRequestedState): Removed.
(finishPartialDownloadingMode): Renamed as
finishSelectiveDownloadingMode.
(finishSelectiveDownloadingMode): New function.
(getPartialTotalLength): Renamed as getSelectedTotalLength.
(getSelectedTotalLength): New function.
(onDownloadComplete): Use diskAdaptor.
* src/MultiDiskWriter.cc (Constructor): Added the argument
pieceLength
(Range): Removed.
(setMultiFileEntries): Renamed as setFileEntries.
(setFileEntries): New function.
* src/MultiDiskWriter.h [DiskWriterEntry](enabled): Removed.
(pieceLength): New variable.
* src/main.cc (printDownloadCompeleteMessage): New function.
(torrentHandler): Use diskAdaptor instead of diskWriter.
(main): Renamed torrent-show-files to show-files.
Rewritten file contents listing.
* src/TorrentMan.h (FileEntry): Removed.
(multiFileTopDir): Removed.
(multiFileEntries): Removed.
(diskWriter): Removed.
(diskAdaptor): New variable.
* src/DefaultDiskWriter.h (totalLength): New variable.
* src/DefaultDiskWriter.cc (initAndOpenFile): Added ftruncate.
* src/TorrentDownloadEngine.cc (onEndOfRun): Use diskAdaptor
instead of
diskWriter.
* src/TorrentConsoleDownloadEngine.h
(partialDownloadLengthDiff): Renamed as
selectedDownloadLengthDiff.
(partialTotalLength): Renamed as selectedTotalLength.
* src/AbstractDiskWriter.cc (openFile): If file exists, call
openExistingFile, otherwise call initAndOpenFile.
(closeFile): fd > 0, not fd != 0.
* src/prefs.h (PREF_TORRENT_SHOW_FILES): Renamed as
PREF_SHOW_FILES
(PREF_SHOW_FILES): New definition.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To add the ability to download multi torrent into respective
files
directly:
* src/DiskWriter.h (openFile): New function.
(seek): Removed.
* src/MultiDiskWriter.h: New class.
* src/MultiDiskWriter.cc: New class.
* src/AbstractDiskWriter.h (seek): Changed its scope from public
to
protected.
(openFile): New function.
* src/AbstractDiskWriter.cc (openFile): New function.
* src/prefs.h (V_FALSE): New definition.
(PREF_DIRECT_FILE_MAPPING): New definition.
* src/TorrentMan.h (setupDiskWriter): New function.
(setAllMultiFileRequestedState): New function.
(onDownloadComplete): New function.
* src/TorrentMan.cc : Included MultiDiskWriter.h
(setupDiskWriter): New function.
(getFilePath): Updated.
(getTempFilePath): Updated.
(getSegmentFilePath): Updated.
(fixFilename): Updated.
(deleteTempFile): Updated.
(setAllMultiFileRequestedState): New function.
(setFileEntriesToDownload): Use setAllMultiFileRequestedState().
(finishPartialDownloadingMode): Reset requested flags.
(onDownloadComplete): New function.
* src/main.cc: Added --direct-file-mapping option.
Use TorretMan::setupDiskWriter().
* src/TorrentDownloadEngine.cc (afterEachIteration): Use
TorrentMan::
onDownloadComplete().
To fix ETA bug:
* src/Util.h (difftvsec): New function.
* src/Util.cc (difftvsec): New function.
* src/TorrentConsoleDownloadEngine.cc (calculateSpeed): Use int
for the
type of "elapsed" instead of long long int.
(calculateStatistics): Use Util::difftvsec instead of
Util::difftv.
The updates of statistics takes place every 1 seconds.
* src/TorrentConsoleDownloadEngine.h (lastElapsed): Changed its
type.
(calculateSpeed): Changed its argument signature.
* src/PeerMessage.cc (toString): Fixed message.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To print ETA:
* src/TorrentDownloadEngine.cc (afterEachIteration): Added
download
completion handling when dealing with
TorrentMan::isPartialDownloadingMode() == true.
* src/TorrentDownloadEngine.h (onPartialDownloadingCompletes):
New function.
* src/TorrentConsoleDownloadEngine.h (startup): New variable.
(sessionDownloadLength): New variable.
(avgSpeed): New variable.
(eta): New variable.
* src/TorrentConsoleDownloadEngine.cc (initStatistics):
Initialized
new variables: eta, avgSpeed, startup.
(calculateSpeed): Calculate average speed and ETA.
(printStatistics): Added ETA.
* src/Util.h (secfmt): New function.
* src/Util.cc (secfmt): New function.
2006-04-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To detect "keep alive" flooding:
* src/PeerInteractionCommand.h (keepAliveCount): New variable
* src/PeerInteractionCommand.cc (Constructor): Initialized new
variable: keepAliveCount.
(detectMessageFlooding): Added "keep alive" flooding detection.
(receiveMessage): Increase keepAliveCount when "keep alive"
message
received.
To add the ability to download only specified files in
multi-file
torrent:
* src/BitfieldMan.h (filterBitfield): New variable.
(filterEnabled): New variable.
(setFilterBit): New function.
(enableFilter): New function.
(disableFilter): New function.
(isFilterEnabled): New function.
(getFilteredTotalLength): New function.
(getCompletedLength): New function.
* src/BitfieldMan.cc (Constructor): Initialized new variable:
filterBitfield, filterEnabled.
(CopyConstructor): Added filterBitfield and filterEnabled.
(operator==): Added filterBitfield and filterEnabled.
(Destructor): Added filterBitfield.
(getMissingIndex): Use filterBitfield.
(getMissingUnusedIndex): Use filterBitfield.
(getFirstMissingUnusedIndex): Use filterBitfield.
(getFirstMissingUnusedIndex): Use filterBitfield.
(getAllMissingIndexes): Use filterBitfield.
(countMissingBlock): Use filterBitfield.
(countBlock): Use filterBitfield.
(setBitInternal): Added new argument on.
(setUseBit): Use setBitInternal.
(unsetUseBit): Use setBitInternal.
(setBit): Use setBitInternal.
(unsetBit): Use setBitInternal.
(isAllBitSet): Use filterBitfield.
(setFilterBit): New function.
(addFilter): New function.
(enableFilter): New function.
(disableFilter): New function.
(clearFilter): New function.
(isFilterEnabled): New function.
(getFilteredTotalLength): New function.
(getCompletedLength): New function.
* src/TorrentMan.h [FileEntry](Constructor): Updated signature.
Initalized newly added variables.
[FileEntry](offset): New variable.
[FileEntry](extracted): New variable.
[FileEntry](requested): New variable.
(readFileEntry): New function.
(option): New variable.
(splitMultiFile): Removed const qualifier.
(fixFilename): Removed const qualifier.
(readFileEntryFromMetaInfoFile): New function.
(finishPartialDownloadingMode): New function.
(isPartialDownloadingMode): New function.
(setFileEntriesToDownload): New function.
(getCompletedLength): New function.
(getPartialTotalLength): New function.
* src/TorrentMan.cc (readFileEntry): New function.
(setup): Use readFileEntry. If no-preallocation option is
specified,
use DefaultDiskWriter.
(readFileEntryFromMetaInfoFile): New function.
(fixFilename): Removed const qualifier.
(splitMultiFile): Removed const qualifier.
(setFileEntriesToDownload): New function.
(isPartialDownloadingMode): New function.
(finishPartialDownloadingMode): New function.
(getCompletedLength): New function.
(getPartialTotalLength): New function.
* src/TorrentConsoleDownloadEngine.h
(partialDownloadLengthDiff):
New variable.
(partialTotalLength): New variable.
(downloadLength): New variable.
(totalLength): New variable.
* src/TorrentConsoleDownloadEngine.cc
(onPartialDownloadingCompletes):
Added log.
(initStatistics): Initialized new variables:
partialDownloadLengthDiff,
partialTotalLength, downloadLength, totalLength.
(calculate): Calculate downloadLength and totalLength.
* src/prefs.h :New definition PREF_NO_PREALLOCATION
* src/main.cc (addCommand): Changed argument signature.
(main): Added new variable: args. Added new option
"torrent-show-files"
"no-preallocation". Usage is not updated yet.
2006-04-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/PeerMessage.cc (setBitfield): Fixed invalid memory
de-allocation.
|
| | |
|
| |
|