<feed xmlns='http://www.w3.org/2005/Atom'>
<title>aria2/src/MultiDiskWriter.h, branch utp-support</title>
<subtitle>Aria2 download utility with uTP support</subtitle>
<id>http://x-nagi.com/cgit/aria2/atom?h=utp-support</id>
<link rel='self' href='http://x-nagi.com/cgit/aria2/atom?h=utp-support'/>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/'/>
<updated>2007-10-11T16:58:24Z</updated>
<entry>
<title>2007-10-12  Tatsuhiro Tsujikawa  &lt;tujikawa at rednoah dot com&gt;</title>
<updated>2007-10-11T16:58:24Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2007-10-11T16:58:24Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=048a2cf59737f761876e81a77e8d064c45c752d7'/>
<id>urn:sha1:048a2cf59737f761876e81a77e8d064c45c752d7</id>
<content type='text'>
	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.


</content>
</entry>
<entry>
<title>2007-01-08  Tatsuhiro Tsujikawa  &lt;tujikawa at rednoah dot com&gt;</title>
<updated>2007-01-08T00:13:25Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2007-01-08T00:13:25Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=3a412f89b24edf25579d3904e85687373eeb2172'/>
<id>urn:sha1:3a412f89b24edf25579d3904e85687373eeb2172</id>
<content type='text'>
	To add an ability to pre-allocate file space:
	
	* src/DirectDiskAdaptor.h: Rewritten.
	* src/PieceStorage.h: DiskAdaptor -&gt; DiskAdaptorHandle
	* src/MultiDiskAdaptor.h: Rewritten.
	* src/DefaultPieceStorage.cc
	(MultiDiskWriter.h): Removed include.
	(PreAllocationDiskWriter.h): Removed include.
	(FileAllocationMonitor.h): New include.
	(~DefaultPieceStorage): Removed deletion of diskAdaptor.
	(initStorage): Rewritten.
	(getDiskAdaptor): DiskAdaptor -&gt; DiskAdaptorHandle
	* src/FileAllocator.h: New class.
	* src/FileAllocator.cc: New class.
	* src/FileAllocationMonitor.h: New class.
	* src/FileAllocationMonitor.cc: New class.
	* src/ConsoleFileAllocationMonitor.h: New class.
	* src/ConsoleFileAllocationMonitor.cc: New class.
	* src/AbstractSingleDiskAdaptor.h: New class.
	* src/AbstractSingleDiskAdaptor.cc: New class.
	* src/DiskAdaptor.h
	(Directory.h): Removed include.
	(DiskWriter.h): Removed include.
	(FileEntry.h): Removed include.
	(diskWriter): Removed.
	(DiskAdaptor): Removed diskWriter.
	(openFile): Made pure virtual.
	(closeFile): Made pure virtual.
	(openExistingFile): Made pure virtual.
	(initAndOpenFile): Made pure virtual.
	(writeData): Made pure virtual.
	(readData): Made pure virtual.
	(sha1Sum): Made pure virtual.
	(getStoreDir): Returns const reference of storeDir.
	(DiskAdaptorHandle): New type definition.
	* src/main.cc
	(ConsoleFileAllocationMonitor.h): New include.
	(showUsage): Added default value description of -s option.
	Added the description of --file-allocation option.
	(main): Set default value of --file-allocation option to 'none'.
	Added --file-allocation command-line option.
	Setup FileAllocationMonitorFactory.
	* src/FtpInitiateConnectionCommand.cc
	(executeInternal): Removed diskWriter related processing, which 
was
	moved to FtpNegotiationCommand.cc.
	* src/DirectDiskAdaptor.cc
	(getFilePath): Made non-const.
	* src/CopyDiskAdaptor.h
	(DiskAdaptor.h): Removed include.
	(DiskWriter.h): Removed include.
	(AbstractSingleDiskAdaptor.h): New include.
	(getFilePath): Made non-const. Added virtual keyword.
	(CopyDiskAdaptor): Removed diskWriter.
	(getTempFile): Returns const reference.
	(CopyDiskAdaptorHandle): New type definition.
	* src/ByteArrayDiskWriter.cc
	(clear): Simplified.
	(initAndOpenFile): Rewritten.
	(openFile): Call initAndOpenFile()
	* src/MultiDiskAdaptor.cc: Rewritten.
	* src/DownloadEngineFactory.cc
	(FileAllocator.h): New include.
	(FileAllocationMonitor.h): New include.
	(newConsoleEngine): Call 
DefaultDiskWriter::createNewDiskWriter() to
	create DefaultDiskWriter with file allocator.
	* src/DiskWriter.h
	(initAndOpenFile): Added totalLength argument.
	(openFile): Added totalLength argument.
	* src/prefs.h
	(PREF_FILE_ALLOCATION): New definition.
	(V_PREALLOC): New definition.
	(V_NONE): New definition.
	* src/HttpResponseCommand.cc
	(handleDefaultEncoding): Call DefaultDiskWriter::initAndOpenFile 
with
	size.
	* src/FtpNegotiateCommand.cc
	(Util.h): New include.
	(recvSize): Open file here.
	* src/Util.h
	(ullitos): New function.
	* src/CopyDiskWriter.h
	(getFilePath): Made non-const.
	* src/DefaultDiskWriter.h
	(Option.h): New include.
	(totalLength): Removed.
	(DefaultDiskWriter): Removed totalLength.
	(initAndOpenFile): Added totalLength argument.
	(DefaultDiskWriterHandle): New type definition.
	(createNewDiskWriter): New function.
	* src/Util.cc
	(ullitos): New function.
	* src/DefaultDiskWriter.cc
	(message.h): New include.
	(FileAllocator.h): New include.
	(prefs.h): New include.
	(Util.h): New include.
	(DefaultDiskWriter): Removed totalLength.
	(initAndOpenFile): Added file allocation.
	(createNewDiskWriter): New function. Just for temporary 
solution.
	It will be rewritten later.
	* src/DiskAdaptor.cc
	(DiskAdaptor): Removed diskWriter.
	* src/AbstractDiskWriter.cc
	(LogFactory.h): New include.
	(AbstractDiskWriter): Added fileAllocator, logger.
	(openFile): Added totalLength argument.
	* src/AbstractDiskWriter.h
	(FileAllocator.h): New include.
	(Logger.h): New include.
	(fileAllocator): New variable.
	(logger): New variable.
	(openFile): Added totalLength argument. Added virtual keyword
	explicitly.
	(openExistingFile): Added totalLength argument. Added virtual 
keyword
	explicitly.
	(closeFile): Added virtual keyword explicitly.
	(sha1Sum): Added virtual keyword explicitly.
	(writeData): Added virtual keyword explicitly.
	(readData): Added virtual keyword explicitly.
	(setFileAllocator): New function.
	* src/DefaultPieceStorage.h
	(FileAllocator.h): New include.
	(diskAdaptor): DiskAdaptor -&gt; DiskAdaptorHandle
	(getDiskAdaptor): DiskAdaptor -&gt; DiskAdaptorHandle
	* src/FileProgressMonitor.h: New class.

	To compile aria2 on PC-BSD:
	
	* src/DefaultBtContext.cc
	(libgen.h): New include.
	
	To fix memory leak:
	
	* src/Exception.h
	(~Exception): Delete cause. Fixed memory leak.


</content>
</entry>
<entry>
<title>2006-11-05  Tatsuhiro Tsujikawa  &lt;tujikawa at rednoah dot com&gt;</title>
<updated>2006-11-05T15:04:17Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2006-11-05T15:04:17Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=ec642ad294dd8fe6238b3a47309293c1c77beb68'/>
<id>urn:sha1:ec642ad294dd8fe6238b3a47309293c1c77beb68</id>
<content type='text'>
	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-&gt;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 -&gt; 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".


</content>
</entry>
<entry>
<title>2006-09-22  Tatsuhiro Tsujikawa  &lt;tujikawa at rednoah dot com&gt;</title>
<updated>2006-09-21T15:31:24Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2006-09-21T15:31:24Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=1b5af8e8298d85d47be1de79cf8158b1aae6f06b'/>
<id>urn:sha1:1b5af8e8298d85d47be1de79cf8158b1aae6f06b</id>
<content type='text'>
	* src/*.{h,cc}:
	Added an exception to the license which allows linking with 
OpenSSL.


</content>
</entry>
<entry>
<title>2006-08-08  Tatsuhiro Tsujikawa  &lt;tujikawa@rednoah.com&gt;</title>
<updated>2006-08-07T16:05:00Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2006-08-07T16:05:00Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=58dbaafc8502c9537972904aa5f4e42a73b9f066'/>
<id>urn:sha1:58dbaafc8502c9537972904aa5f4e42a73b9f066</id>
<content type='text'>
	* src/FtpNegotiateCommand.cc
	(recvGreeting): Call disableWriteCheckSocket just after
	socket-&gt;setBlockingMode(). This avoids unnecessary CPU-hog loop.

2006-08-07  Tatsuhiro Tsujikawa  &lt;tujikawa at rednoah dot com&gt;

	* src/PeerChokeCommand.h
	(PeerChokeCommand): Rearranged the arguments.
	* src/PeerChokeCommand.cc
	(PeerChokeCommand): Rearranged the arguments.

	* src/MetalinkEntry.h
	(Checksum.h): Included.
	(md5): Removed.
	(sha1): Removed.
	(checksum): New variable.
	(operator=): Updated.
	(check): Removed.

	* src/prefs.h
	(PREF_LOWEST_SPEED_LIMIT): New definition.
	(PREF_FOLLOW_TORRENT): New definition.
	(PREF_SELECT_FILE): New definition.
	(PREF_FOLLOW_METALINK): New definition.

	* src/MetalinkResource.h
	(TYPE_HTTPS): Added to enum TYPE.

	* src/TorrentMan.cc
	(~TorrentMan): Rewritten.

	* src/MultiDiskWriter.cc
	(MultiDiskAdaptor): Updated according to the changes in
	MessageDigestContext.
	(~MultiDiskAdaptor): Updated according to the changes in
	MessageDigestContext.
	(hashUpdate): Updated according to the changes in 
MessageDigestContext.
	(sha1Sum): Updated according to the changes in 
MessageDigestContext.

	* src/Util.h
	(fileChecksum): Updated according to the changes in
	MessageDigestContext.
	* src/Util.cc
	(sha1Sum): Updated according to the changes in 
MessageDigestContext.
	(fileChecksum): Updated according to the changes in
	MessageDigestContext.

	* src/messageDigest.h: Rewritten.

	* src/MetalinkEntry.cc
	(check): Removed.
	(Supported): Updated.
	(dropUnsupportedResource): Fixed a memory leak.

	* src/ShaVisitor.cc
	(ShaVisitor): Updated according to the changes in 
MessageDigestContext.
	(~ShaVisitor): Updated according to the changes in
	MessageDigestContext.
	(visit): Updated according to the changes in 
MessageDigestContext.

	* src/main.cc
	(main): Rewritten the portion of download loop. 
--lowest-speed-limit
	command-line option added.

	* src/DownloadEngine.h
	(SocketEntry): New class.
	(SocketEntries): New definition.
	(PairFind): Removed.
	(SockCmdMap): Removed.
	* src/DownloadEngine.cc
	(DownloadEngine): Rewritten.
	(~DownloadEngine): Rewritten.
	(run): Renamed activeCommandUuids as activeUuids.
	(SetDescriptor): Rewritten.
	(AccumulateActiveCommandUuid): Removed.
	(AccumulateActiveUuid): New function object.
	(waitData): Rewritten.
	(updateFdSet): Rewritten.
	(addSocket): Rewritten.
	(deleteSocket): Rewritten.
	(addSocketForReadCheck): Rewritten.
	(deleteSocketForReadCheck): Rewritten.
	(addSocketForWriteCheck): Rewritten.
	(deleteSocketForWriteCheck): Rewritten.
	
	* src/Xml2MetalinkProcessor.cc
	(getEntry): Rewritten the portion of MetalinkEntry creation.

	* src/DownloadCommand.cc
	(executeInternal): Added the check routine for lowest speed 
limit.

	* src/AbstractDiskWriter.cc
	(AbstractDiskWriter): Updated according to the changes in
	MessageDigestContext.
	(~AbstractDiskWriter): Updated according to the changes in
	MessageDigestContext.
	(sha1Sum): Updated according to the changes in 
MessageDigestContext.

	* src/RequestInfo.h: New class.

	* src/UrlRequestInfo.h: New class.
	* src/UrlRequestInfo.cc: New class.

	* src/TorrentRequestInfo.h: New class.
	* src/TorrentRequestInfo.cc: New class.

	* src/MetalinkRequestInfo.h: New class.
	* src/MetalinkRequestInfo.cc: New class.

	* src/Checksum.h: New class.

	* src/DownloadEngineFactory.h: New class.
	* src/DownloadEngineFactory.cc: New class.
	

</content>
</entry>
<entry>
<title>2006-07-04  Tatsuhiro Tsujikawa  &lt;tujikawa at rednoah dot com&gt;</title>
<updated>2006-07-04T10:57:56Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2006-07-04T10:57:56Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=31cf446f6d078efe96fe0d5e7433cf56a224a493'/>
<id>urn:sha1:31cf446f6d078efe96fe0d5e7433cf56a224a493</id>
<content type='text'>
        To improve the conditional compilation:

	* src/MultiDiskWriter.h:
	Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.	
	* src/MultiDiskWriter.cc:
	Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
	* src/Util.h:
	Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
	Added ENABLE_BITTORRENT around computeFastSet().
	* src/Util.cc:
	Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
	Added ENABLE_BITTORRENT around computeFastSet().	
	* src/messageDigest.h:
	Replaced ENABLE_BITTORRENT with ENABLE_SSL.
	* src/ShaVisitor.h:
	Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
	* src/ShaVisitor.cc:
	Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
	* src/main.cc:
	Added ENABLE_BITTORRENT around includes and blocks related to
	BitTorrent.
	* src/AbstractDiskWriter.h:
	Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
	* src/AbstractDiskWriter.cc:
	Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
	
	To add command-line options for Metalink:

	* src/main.cc:
	Added metalink-version, metalink-language, metalink-os,
	follow-metalink.

	To use EXIT_SUCCESS and EXIT_FAILURE with exit():

	* src/main.cc: Use these definition.


</content>
</entry>
<entry>
<title></title>
<updated>2006-04-20T16:23:32Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2006-04-20T16:23:32Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=ea4be7769bb70c36f2df338051d09e2790ebbec1'/>
<id>urn:sha1:ea4be7769bb70c36f2df338051d09e2790ebbec1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>make string type argument const string&amp; where possible</title>
<updated>2006-04-19T17:49:03Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2006-04-19T17:49:03Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=b1d46227d4ed9e86952e4d2d6059ecbde2d248e0'/>
<id>urn:sha1:b1d46227d4ed9e86952e4d2d6059ecbde2d248e0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>2006-04-16  Tatsuhiro Tsujikawa  &lt;tujikawa at rednoah dot com&gt;</title>
<updated>2006-04-16T14:38:19Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2006-04-16T14:38:19Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=2a84b9de43c759fb93aa7a0bb2d22d4b5f37af4e'/>
<id>urn:sha1:2a84b9de43c759fb93aa7a0bb2d22d4b5f37af4e</id>
<content type='text'>
	* 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 &gt; 0, not fd != 0.
	
	* src/prefs.h (PREF_TORRENT_SHOW_FILES): Renamed as 
PREF_SHOW_FILES
	(PREF_SHOW_FILES): New definition.

</content>
</entry>
<entry>
<title>2006-04-12  Tatsuhiro Tsujikawa  &lt;tujikawa at rednoah dot com&gt;</title>
<updated>2006-04-12T13:55:43Z</updated>
<author>
<name>Tatsuhiro Tsujikawa</name>
<email>tatsuhiro.t@gmail.com</email>
</author>
<published>2006-04-12T13:55:43Z</published>
<link rel='alternate' type='text/html' href='http://x-nagi.com/cgit/aria2/commit/?id=2f4b3f7d023714c77a383c53cccacc862421b49a'/>
<id>urn:sha1:2f4b3f7d023714c77a383c53cccacc862421b49a</id>
<content type='text'>
	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.

</content>
</entry>
</feed>
