linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #05079
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 2766: Move some stuff to finishedmanager
------------------------------------------------------------
revno: 2766
committer: Jacek Sieka <arnetheduck@xxxxxxxxx>
branch nick: dcplusplus
timestamp: Wed 2011-12-28 19:37:58 +0100
message:
Move some stuff to finishedmanager
modified:
dcpp/File.h
dcpp/FinishedManager.cpp
dcpp/FinishedManager.h
dcpp/QueueManager.cpp
--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk
Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'dcpp/File.h'
--- dcpp/File.h 2011-12-23 14:58:25 +0000
+++ dcpp/File.h 2011-12-28 18:37:58 +0000
@@ -35,6 +35,8 @@
class File : public IOStream {
public:
+ using OutputStream::write;
+
enum {
OPEN = 0x01,
CREATE = 0x02,
@@ -97,7 +99,7 @@
string read(size_t len);
string read();
- void write(const string& aString) { write((void*)aString.data(), aString.size()); }
+
static StringList findFiles(const string& path, const string& pattern);
protected:
=== modified file 'dcpp/FinishedManager.cpp'
--- dcpp/FinishedManager.cpp 2011-12-27 15:21:02 +0000
+++ dcpp/FinishedManager.cpp 2011-12-28 18:37:58 +0000
@@ -26,6 +26,7 @@
#include "DownloadManager.h"
#include "QueueManager.h"
#include "UploadManager.h"
+#include "ClientManager.h"
namespace dcpp {
@@ -102,6 +103,64 @@
ULByUser.clear();
}
+void FinishedManager::update(const string & target, ParamMap& params) {
+ Lock l(cs);
+
+ auto it = DLByFile.find(target);
+ if(it == DLByFile.end()) {
+ return;
+ }
+
+ auto entry = it->second;
+ if (!entry->getUsers().empty()) {
+ StringList nicks, cids, ips, hubNames, hubUrls, temp;
+ string ip;
+ for(auto i = entry->getUsers().begin(), iend = entry->getUsers().end(); i != iend; ++i) {
+
+ nicks.push_back(Util::toString(ClientManager::getInstance()->getNicks(*i)));
+ cids.push_back(i->user->getCID().toBase32());
+
+ ip.clear();
+ if (i->user->isOnline()) {
+ OnlineUser* u = ClientManager::getInstance()->findOnlineUser(*i, false);
+ if (u) {
+ ip = u->getIdentity().getIp();
+ }
+ }
+ if (ip.empty()) {
+ ip = _("Offline");
+ }
+ ips.push_back(ip);
+
+ temp = ClientManager::getInstance()->getHubNames(*i);
+ if(temp.empty()) {
+ temp.push_back(_("Offline"));
+ }
+ hubNames.push_back(Util::toString(temp));
+
+ temp = ClientManager::getInstance()->getHubUrls(*i);
+ if(temp.empty()) {
+ temp.push_back(_("Offline"));
+ }
+ hubUrls.push_back(Util::toString(temp));
+ }
+
+ params["userNI"] = Util::toString(nicks);
+ params["userCID"] = Util::toString(cids);
+ params["userI4"] = Util::toString(ips);
+ params["hubNI"] = Util::toString(hubNames);
+ params["hubURL"] = Util::toString(hubUrls);
+ }
+
+ params["fileSIsession"] = Util::toString(entry->getTransferred());
+ params["fileSIsessionshort"] = Util::formatBytes(entry->getTransferred());
+ params["fileSIactual"] = Util::toString(entry->getActual());
+ params["fileSIactualshort"] = Util::formatBytes(entry->getActual());
+
+ params["speed"] = str(F_("%1%/s") % Util::formatBytes(entry->getAverageSpeed()));
+ params["time"] = Util::formatSeconds(entry->getMilliSeconds() / 1000);
+}
+
void FinishedManager::onComplete(Transfer* t, bool upload, bool crc32Checked) {
if(t->getType() == Transfer::TYPE_FILE || (t->getType() == Transfer::TYPE_FULL_LIST && BOOLSETTING(LOG_FILELIST_TRANSFERS))) {
string file = t->getPath();
=== modified file 'dcpp/FinishedManager.h'
--- dcpp/FinishedManager.h 2011-12-27 15:21:02 +0000
+++ dcpp/FinishedManager.h 2011-12-28 18:37:58 +0000
@@ -39,6 +39,7 @@
typedef unordered_map<string, FinishedFileItemPtr> MapByFile;
typedef unordered_map<HintedUser, FinishedUserItemPtr, User::Hash> MapByUser;
+ void update(const string& target, ParamMap& params);
Lock lock();
const MapByFile& getMapByFile(bool upload) const;
const MapByUser& getMapByUser(bool upload) const;
=== modified file 'dcpp/QueueManager.cpp'
--- dcpp/QueueManager.cpp 2011-12-27 21:24:13 +0000
+++ dcpp/QueueManager.cpp 2011-12-28 18:37:58 +0000
@@ -1473,7 +1473,7 @@
}
}
- f.write("</Downloads>\r\n");
+ f.write(LIT("</Downloads>\r\n"));
f.flush();
ff.close();
File::deleteFile(getQueueFile());
@@ -1486,7 +1486,7 @@
// Put this here to avoid very many saves tries when disk is full...
lastSave = GET_TICK();
- std::for_each(cids.begin(), cids.end(), [](const CID& cid) { ClientManager::getInstance()->saveUser(cid); });
+ for_each(cids, [](const CID& cid) { ClientManager::getInstance()->saveUser(cid); });
}
class QueueLoader : public SimpleXMLReader::CallBack {
@@ -1768,62 +1768,7 @@
params["fileTR"] = qi->getTTH().toBase32();
params["sfv"] = Util::toString(crcError ? 1 : 0);
- {
- auto lock = FinishedManager::getInstance()->lock();
-
- auto& map = FinishedManager::getInstance()->getMapByFile(false);
- auto it = map.find(qi->getTarget());
- if(it != map.end()) {
- auto entry = it->second;
- if (!entry->getUsers().empty()) {
- StringList nicks, cids, ips, hubNames, hubUrls, temp;
- string ip;
- for(auto i = entry->getUsers().begin(), iend = entry->getUsers().end(); i != iend; ++i) {
-
- nicks.push_back(Util::toString(ClientManager::getInstance()->getNicks(*i)));
- cids.push_back(i->user->getCID().toBase32());
-
- ip.clear();
- if (i->user->isOnline()) {
- OnlineUser* u = ClientManager::getInstance()->findOnlineUser(*i, false);
- if (u) {
- ip = u->getIdentity().getIp();
- }
- }
- if (ip.empty()) {
- ip = _("Offline");
- }
- ips.push_back(ip);
-
- temp = ClientManager::getInstance()->getHubNames(*i);
- if(temp.empty()) {
- temp.push_back(_("Offline"));
- }
- hubNames.push_back(Util::toString(temp));
-
- temp = ClientManager::getInstance()->getHubUrls(*i);
- if(temp.empty()) {
- temp.push_back(_("Offline"));
- }
- hubUrls.push_back(Util::toString(temp));
- }
-
- params["userNI"] = Util::toString(nicks);
- params["userCID"] = Util::toString(cids);
- params["userI4"] = Util::toString(ips);
- params["hubNI"] = Util::toString(hubNames);
- params["hubURL"] = Util::toString(hubUrls);
- }
-
- params["fileSIsession"] = Util::toString(entry->getTransferred());
- params["fileSIsessionshort"] = Util::formatBytes(entry->getTransferred());
- params["fileSIactual"] = Util::toString(entry->getActual());
- params["fileSIactualshort"] = Util::formatBytes(entry->getActual());
-
- params["speed"] = str(F_("%1%/s") % Util::formatBytes(entry->getAverageSpeed()));
- params["time"] = Util::formatSeconds(entry->getMilliSeconds() / 1000);
- }
- }
+ FinishedManager::getInstance()->update(qi->getTarget(), params);
LOG(LogManager::FINISHED_DOWNLOAD, params);
}