mirror of https://github.com/aria2/aria2
2009-06-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Moved getFirstRequestedFileEntry(), countRequestedFileEntry() and writeFilePath() function template from RequestGroupMan.cc to FileEntry.h * src/FileEntry.h * src/RequestGroupMan.ccpull/1/head
parent
1c070ed66e
commit
9120e79ff1
|
@ -1,3 +1,11 @@
|
|||
2009-06-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Moved getFirstRequestedFileEntry(), countRequestedFileEntry() and
|
||||
writeFilePath() function template from RequestGroupMan.cc to
|
||||
FileEntry.h
|
||||
* src/FileEntry.h
|
||||
* src/RequestGroupMan.cc
|
||||
|
||||
2009-06-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Documented 'position' parameter is starting from 0 in man page.
|
||||
|
|
|
@ -36,10 +36,13 @@
|
|||
#define _D_FILE_ENTRY_H_
|
||||
|
||||
#include "common.h"
|
||||
#include "SharedHandle.h"
|
||||
#include "File.h"
|
||||
|
||||
#include <string>
|
||||
#include <deque>
|
||||
#include <ostream>
|
||||
|
||||
#include "SharedHandle.h"
|
||||
#include "File.h"
|
||||
|
||||
namespace aria2 {
|
||||
|
||||
|
@ -106,6 +109,64 @@ public:
|
|||
typedef SharedHandle<FileEntry> FileEntryHandle;
|
||||
typedef std::deque<FileEntryHandle> FileEntries;
|
||||
|
||||
// Returns the first FileEntry which isRequested() method returns
|
||||
// true. If no such FileEntry exists, then returns
|
||||
// SharedHandle<FileEntry>().
|
||||
template<typename InputIterator>
|
||||
SharedHandle<FileEntry> getFirstRequestedFileEntry
|
||||
(InputIterator first, InputIterator last)
|
||||
{
|
||||
for(; first != last; ++first) {
|
||||
if((*first)->isRequested()) {
|
||||
return *first;
|
||||
}
|
||||
}
|
||||
return SharedHandle<FileEntry>();
|
||||
}
|
||||
|
||||
// Counts the number of files selected in the given iterator range
|
||||
// [first, last).
|
||||
template<typename InputIterator>
|
||||
size_t countRequestedFileEntry(InputIterator first, InputIterator last)
|
||||
{
|
||||
size_t count = 0;
|
||||
for(; first != last; ++first) {
|
||||
if((*first)->isRequested()) {
|
||||
++count;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
// Writes first filename to given o. If memory is true, the output is
|
||||
// "[MEMORY]" plus the basename of the first filename. If there is no
|
||||
// FileEntry, writes "n/a" to o. If more than 1 FileEntry are in the
|
||||
// iterator range [first, last), "(Nmore)" is written at the end where
|
||||
// N is the number of files in iterator range [first, last) minus 1.
|
||||
template<typename InputIterator>
|
||||
void writeFilePath
|
||||
(InputIterator first, InputIterator last, std::ostream& o, bool memory)
|
||||
{
|
||||
SharedHandle<FileEntry> e = getFirstRequestedFileEntry(first, last);
|
||||
if(e.isNull()) {
|
||||
o << "n/a";
|
||||
} else {
|
||||
if(e->getPath().empty()) {
|
||||
o << "n/a";
|
||||
} else {
|
||||
if(memory) {
|
||||
o << "[MEMORY]" << File(e->getPath()).getBasename();
|
||||
} else {
|
||||
o << e->getPath();
|
||||
}
|
||||
}
|
||||
size_t count = countRequestedFileEntry(first, last);
|
||||
if(count > 1) {
|
||||
o << " (" << count-1 << "more)";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif // _D_FILE_ENTRY_H_
|
||||
|
|
|
@ -616,54 +616,6 @@ void RequestGroupMan::showDownloadResults(std::ostream& o) const
|
|||
}
|
||||
}
|
||||
|
||||
template<typename InputIterator>
|
||||
static SharedHandle<FileEntry> getFirstRequestedFileEntry
|
||||
(InputIterator first, InputIterator last)
|
||||
{
|
||||
for(; first != last; ++first) {
|
||||
if((*first)->isRequested()) {
|
||||
return *first;
|
||||
}
|
||||
}
|
||||
return SharedHandle<FileEntry>();
|
||||
}
|
||||
|
||||
template<typename InputIterator>
|
||||
static size_t countRequestedFileEntry(InputIterator first, InputIterator last)
|
||||
{
|
||||
size_t count = 0;
|
||||
for(; first != last; ++first) {
|
||||
if((*first)->isRequested()) {
|
||||
++count;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
template<typename InputIterator>
|
||||
static void writeFilePath
|
||||
(InputIterator first, InputIterator last, std::ostream& o, bool memory)
|
||||
{
|
||||
SharedHandle<FileEntry> e = getFirstRequestedFileEntry(first, last);
|
||||
if(e.isNull()) {
|
||||
o << "n/a";
|
||||
} else {
|
||||
if(e->getPath().empty()) {
|
||||
o << "n/a";
|
||||
} else {
|
||||
if(memory) {
|
||||
o << "[MEMORY]" << File(e->getPath()).getBasename();
|
||||
} else {
|
||||
o << e->getPath();
|
||||
}
|
||||
}
|
||||
size_t count = countRequestedFileEntry(first, last);
|
||||
if(count > 1) {
|
||||
o << " (" << count-1 << "more)";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::string RequestGroupMan::formatDownloadResult(const std::string& status, const DownloadResultHandle& downloadResult) const
|
||||
{
|
||||
std::stringstream o;
|
||||
|
|
Loading…
Reference in New Issue