2008-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Print "[MEMORY]" and filename if a file is not saved in disk and
	just processed in memory. This is the fix for previous comment
	out.
	* src/MemoryBufferPreDownloadHandler.cc
	* src/RequestGroup.cc
	* src/RequestGroup.h
pull/1/head
Tatsuhiro Tsujikawa 2008-11-14 12:02:16 +00:00
parent 6c397fe7ba
commit 690340ef02
4 changed files with 39 additions and 5 deletions

View File

@ -1,3 +1,11 @@
2008-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Print "[MEMORY]" and filename if a file is not saved in disk and just
processed in memory. This is the fix for previous comment out.
* src/MemoryBufferPreDownloadHandler.cc
* src/RequestGroup.cc
* src/RequestGroup.h
2008-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> 2008-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Commented out the code which sets virtual directory path "[MEMORY]" Commented out the code which sets virtual directory path "[MEMORY]"

View File

@ -49,10 +49,7 @@ void MemoryBufferPreDownloadHandler::execute(RequestGroup* requestGroup)
requestGroup->setDiskWriterFactory(dwf); requestGroup->setDiskWriterFactory(dwf);
requestGroup->setFileAllocationEnabled(false); requestGroup->setFileAllocationEnabled(false);
requestGroup->setPreLocalFileCheckEnabled(false); requestGroup->setPreLocalFileCheckEnabled(false);
requestGroup->markInMemoryDownload();
// TODO to propage direction to save, comment out following 2 lines.
//static const std::string DIR_MEMORY("[MEMORY]");
//requestGroup->getDownloadContext()->setDir(DIR_MEMORY);
} }
} // namespace aria2 } // namespace aria2

View File

@ -125,6 +125,7 @@ RequestGroup::RequestGroup(const Option* option,
_uriSelector(new InOrderURISelector()), _uriSelector(new InOrderURISelector()),
_lastModifiedTime(Time::null()), _lastModifiedTime(Time::null()),
_fileNotFoundCount(0), _fileNotFoundCount(0),
_inMemoryDownload(false),
_option(option), _option(option),
_logger(LogFactory::getInstance()) _logger(LogFactory::getInstance())
{ {
@ -892,10 +893,18 @@ DownloadResultHandle RequestGroup::createDownloadResult() const
_segmentMan->calculateSessionDownloadLength(); _segmentMan->calculateSessionDownloadLength();
} }
std::string path;
if(inMemoryDownload()) {
static const std::string DIR_MEMORY("[MEMORY]");
path = DIR_MEMORY+File(getFilePath()).getBasename();
} else {
path = getFilePath();
}
return return
SharedHandle<DownloadResult> SharedHandle<DownloadResult>
(new DownloadResult(_gid, (new DownloadResult(_gid,
getFilePath(), path,
getTotalLength(), getTotalLength(),
uris.empty() ? A2STR::NIL:uris.front(), uris.empty() ? A2STR::NIL:uris.front(),
uris.size(), uris.size(),
@ -1080,4 +1089,14 @@ unsigned int RequestGroup::getNumConcurrentCommand() const
return _numConcurrentCommand; return _numConcurrentCommand;
} }
void RequestGroup::markInMemoryDownload()
{
_inMemoryDownload = true;
}
bool RequestGroup::inMemoryDownload() const
{
return _inMemoryDownload;
}
} // namespace aria2 } // namespace aria2

View File

@ -132,6 +132,10 @@ private:
WeakHandle<PeerStorage> _peerStorage; WeakHandle<PeerStorage> _peerStorage;
#endif // ENABLE_BITTORRENT #endif // ENABLE_BITTORRENT
// This flag just indicates that the downloaded file is not saved disk but
// just sits in memory.
bool _inMemoryDownload;
const Option* _option; const Option* _option;
Logger* _logger; Logger* _logger;
@ -386,6 +390,12 @@ public:
void updateLastModifiedTime(const Time& time); void updateLastModifiedTime(const Time& time);
void increaseAndValidateFileNotFoundCount(); void increaseAndValidateFileNotFoundCount();
// Just set inMemoryDownload flag true.
void markInMemoryDownload();
// Returns inMemoryDownload flag.
bool inMemoryDownload() const;
}; };
typedef SharedHandle<RequestGroup> RequestGroupHandle; typedef SharedHandle<RequestGroup> RequestGroupHandle;