linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #03370
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 2431: remove some cruft, more info in users info
------------------------------------------------------------
revno: 2431
committer: Jacek Sieka <arnetheduck@xxxxxxxxx>
branch nick: dcplusplus
timestamp: Sat 2011-02-19 23:27:39 +0100
message:
remove some cruft, more info in users info
modified:
dcpp/AdcCommand.h
dcpp/AdcHub.cpp
dcpp/ClientManager.cpp
dcpp/ClientManager.h
dcpp/ConnectionManager.cpp
dcpp/QueueManager.cpp
dcpp/QueueManager.h
win32/TransferView.cpp
win32/UsersFrame.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/AdcCommand.h'
--- dcpp/AdcCommand.h 2011-01-02 17:12:02 +0000
+++ dcpp/AdcCommand.h 2011-02-19 22:27:39 +0000
@@ -202,10 +202,8 @@
C(SND);
C(SID);
C(CMD);
-#ifndef DISABLE_NAT_TRAVERSAL
C(NAT);
C(RNT);
-#endif
default:
dcdebug("Unknown ADC command: %.50s\n", aLine.c_str());
break;
=== modified file 'dcpp/AdcHub.cpp'
--- dcpp/AdcHub.cpp 2011-01-29 14:15:43 +0000
+++ dcpp/AdcHub.cpp 2011-02-19 22:27:39 +0000
@@ -359,10 +359,7 @@
if(c.getParameters().size() < 2) {
return;
}
-#ifdef DISABLE_NAT_TRAVERSAL
- if(!ClientManager::getInstance()->isActive())
- return;
-#endif
+
OnlineUser* u = findUser(c.getFrom());
if(!u || u->getUser() == ClientManager::getInstance()->getMe())
return;
@@ -379,7 +376,7 @@
unknownProtocol(c.getFrom(), protocol, token);
return;
}
-#ifndef DISABLE_NAT_TRAVERSAL
+
if(ClientManager::getInstance()->isActive()) {
connect(*u, token, secure);
return;
@@ -393,10 +390,6 @@
// clients call ConnectionManager::adcConnect.
send(AdcCommand(AdcCommand::CMD_NAT, u->getIdentity().getSID(), AdcCommand::TYPE_DIRECT).
addParam(protocol).addParam(Util::toString(sock->getLocalPort())).addParam(token));
- return;
-#else
- connect(*u, token, secure);
-#endif
}
void AdcHub::handle(AdcCommand::CMD, AdcCommand& c) throw() {
@@ -901,13 +894,10 @@
} else {
c.setType(AdcCommand::TYPE_FEATURE);
string features = c.getFeatures();
-#ifndef DISABLE_NAT_TRAVERSAL
+
c.setFeatures(features + '+' + TCP4_FEATURE + '-' + NAT0_FEATURE);
send(c);
c.setFeatures(features + '+' + NAT0_FEATURE);
-#else
- c.setFeatures(features + '+' + TCP4_FEATURE);
-#endif
send(c);
}
}
=== modified file 'dcpp/ClientManager.cpp'
--- dcpp/ClientManager.cpp 2011-01-29 14:15:43 +0000
+++ dcpp/ClientManager.cpp 2011-02-19 22:27:39 +0000
@@ -144,6 +144,17 @@
return StringList(ret.begin(), ret.end());
}
+vector<Identity> ClientManager::getIdentities(const UserPtr &u) const {
+ Lock l(cs);
+ auto op = onlineUsers.equal_range(u->getCID());
+ auto ret = vector<Identity>();
+ for(auto i = op.first; i != op.second; ++i) {
+ ret.push_back(i->second->getIdentity());
+ }
+
+ return ret;
+}
+
string ClientManager::getField(const CID& cid, const string& hint, const char* field) const {
Lock l(cs);
=== modified file 'dcpp/ClientManager.h'
--- dcpp/ClientManager.h 2011-01-29 14:15:43 +0000
+++ dcpp/ClientManager.h 2011-02-19 22:27:39 +0000
@@ -58,6 +58,8 @@
StringList getNicks(const HintedUser& user) { return getNicks(user.user->getCID(), user.hint); }
StringList getHubNames(const HintedUser& user) { return getHubNames(user.user->getCID(), user.hint); }
+ vector<Identity> getIdentities(const UserPtr &u) const;
+
string getConnection(const CID& cid) const;
bool isConnected(const string& aUrl) const;
=== modified file 'dcpp/ConnectionManager.cpp'
--- dcpp/ConnectionManager.cpp 2011-01-29 14:15:43 +0000
+++ dcpp/ConnectionManager.cpp 2011-02-19 22:27:39 +0000
@@ -242,7 +242,8 @@
while(!die) {
try {
while(!die) {
- if(sock.wait(POLL_TIMEOUT, Socket::WAIT_READ) == Socket::WAIT_READ) {
+ auto ret = sock.wait(POLL_TIMEOUT, Socket::WAIT_READ);
+ if(ret == Socket::WAIT_READ) {
ConnectionManager::getInstance()->accept(sock, secure);
}
}
=== modified file 'dcpp/QueueManager.cpp'
--- dcpp/QueueManager.cpp 2011-02-11 21:36:28 +0000
+++ dcpp/QueueManager.cpp 2011-02-19 22:27:39 +0000
@@ -252,8 +252,8 @@
add(qi);
}
-int64_t QueueManager::UserQueue::getQueued(const UserPtr& aUser) const {
- int64_t total = 0;
+pair<size_t, int64_t> QueueManager::UserQueue::getQueued(const UserPtr& aUser) const {
+ pair<size_t, int64_t> ret(0, 0);
for(size_t i = QueueItem::LOWEST; i < QueueItem::LAST; ++i) {
const QueueItem::UserListMap& ulm = userQueue[i];
QueueItem::UserListMap::const_iterator iulm = ulm.find(aUser);
@@ -263,12 +263,13 @@
for(QueueItem::List::const_iterator j = iulm->second.begin(); j != iulm->second.end(); ++j) {
const QueueItem::Ptr qi = *j;
+ ++ret.first;
if(qi->getSize() != -1) {
- total += qi->getSize() - qi->getDownloadedBytes();
+ ret.second += qi->getSize() - qi->getDownloadedBytes();
}
}
}
- return total;
+ return ret;
}
QueueItem* QueueManager::UserQueue::getRunning(const UserPtr& aUser) {
@@ -1339,7 +1340,7 @@
}
}
-int64_t QueueManager::getQueued(const UserPtr& aUser) const {
+pair<size_t, int64_t> QueueManager::getQueued(const UserPtr& aUser) const {
Lock l(cs);
return userQueue.getQueued(aUser);
}
=== modified file 'dcpp/QueueManager.h'
--- dcpp/QueueManager.h 2011-01-02 17:12:02 +0000
+++ dcpp/QueueManager.h 2011-02-19 22:27:39 +0000
@@ -110,7 +110,7 @@
void putDownload(Download* aDownload, bool finished) throw();
void setFile(Download* download);
- int64_t getQueued(const UserPtr& aUser) const;
+ pair<size_t, int64_t> getQueued(const UserPtr& aUser) const;
/** @return The highest priority download the user has, PAUSED may also mean no downloads */
QueueItem::Priority hasDownload(const UserPtr& aUser) throw();
@@ -211,7 +211,7 @@
bool isRunning(const UserPtr& aUser) const {
return (running.find(aUser) != running.end());
}
- int64_t getQueued(const UserPtr& aUser) const;
+ pair<size_t, int64_t> getQueued(const UserPtr& aUser) const;
private:
/** QueueItems by priority and user (this is where the download order is determined) */
QueueItem::UserListMap userQueue[QueueItem::LAST];
=== modified file 'win32/TransferView.cpp'
--- win32/TransferView.cpp 2011-02-19 17:03:15 +0000
+++ win32/TransferView.cpp 2011-02-19 22:27:39 +0000
@@ -589,7 +589,7 @@
columns[CONNECTION_COLUMN_STATUS] = T_("Idle");
columns[CONNECTION_COLUMN_TRANSFERED] = Text::toT(Util::toString(0));
if(aDownload) {
- queued = QueueManager::getInstance()->getQueued(u);
+ queued = QueueManager::getInstance()->getQueued(u).second;
columns[CONNECTION_COLUMN_QUEUED] = Text::toT(Util::formatBytes(queued));
}
}
@@ -600,7 +600,7 @@
status = ui.status;
if(download) {
// Also update queued when status changes...
- queued = QueueManager::getInstance()->getQueued(user);
+ queued = QueueManager::getInstance()->getQueued(user).second;
columns[CONNECTION_COLUMN_QUEUED] = Text::toT(Util::formatBytes(queued));
}
}
=== modified file 'win32/UsersFrame.cpp'
--- win32/UsersFrame.cpp 2011-02-19 19:20:08 +0000
+++ win32/UsersFrame.cpp 2011-02-19 22:27:39 +0000
@@ -49,20 +49,36 @@
struct FieldName {
string field;
tstring name;
+ tstring (*convert)(const string &val);
};
+static tstring formatBytes(const string& val) {
+ return Text::toT(Util::formatBytes(val));
+}
+
static const FieldName fields[] =
{
- { "NI", T_("Nick") },
- { "DE", T_("Description") },
- { "EM", T_("E-Mail") },
- { "SL", T_("Slots") },
- { "SF", T_("Shared files") },
- { "SS", T_("Shared bytes") },
- { "I4", T_("IP (v4)") },
- { "I6", T_("IP (v6)") },
- { "VE", T_("Client") },
- { "", _T("") }
+ { "NI", T_("Nick"), &Text::toT },
+ { "AW", T_("Away"), &Text::toT },
+ { "DE", T_("Description"), &Text::toT },
+ { "EM", T_("E-Mail"), &Text::toT },
+ { "SS", T_("Shared bytes"), &formatBytes },
+ { "SF", T_("Shared files"), &Text::toT },
+ { "US", T_("Upload speed"), &Text::toT },
+ { "DS", T_("Download speed"), &Text::toT },
+ { "SL", T_("Slots"), &Text::toT },
+ { "HN", T_("Hubs (normal)"), &Text::toT },
+ { "HR", T_("Hubs (registered)"), &Text::toT },
+ { "HO", T_("Hubs (op)"), &Text::toT },
+ { "I4", T_("IP (v4)"), &Text::toT },
+ { "I6", T_("IP (v6)"), &Text::toT },
+ { "U4", T_("Search port (v4)"), &Text::toT },
+ { "U6", T_("Search port (v4)"), &Text::toT },
+ { "SU", T_("Features"), &Text::toT },
+ { "VE", T_("Client"), &Text::toT },
+ { "ID", T_("CID"), &Text::toT },
+
+ { "", _T(""), 0 }
};
UsersFrame::UsersFrame(TabViewPtr parent) :
@@ -281,20 +297,29 @@
return;
}
- auto lock = ClientManager::getInstance()->lock();
- auto ui = ClientManager::getInstance()->findOnlineUser(sel->getUser(), false);
- if(!ui) {
+ auto user = sel->getUser();
+ auto idents = ClientManager::getInstance()->getIdentities(user);
+ if(idents.empty()) {
return;
}
- auto info = ui->getIdentity().getInfo();
+ auto info = idents[0].getInfo();
+ for(size_t i = 1; i < idents.size(); ++i) {
+ for(auto j = idents[i].getInfo().begin(); j != idents[i].getInfo().end(); ++j) {
+ info[j->first] = j->second;
+ }
+ }
+
+ userInfo->addRow(GridInfo());
+ auto general = userInfo->addChild(Label::Seed(T_("General information")));
+ userInfo->setWidget(general, 0, 0, 1, 2);
for(auto f = fields; !f->field.empty(); ++f) {
auto i = info.find(f->field);
if(i != info.end()) {
userInfo->addRow(GridInfo());
userInfo->addChild(Label::Seed(f->name));
- userInfo->addChild(Label::Seed(Text::toT(i->second)));
+ userInfo->addChild(Label::Seed(f->convert(i->second)));
info.erase(i);
}
}
@@ -305,6 +330,35 @@
userInfo->addChild(Label::Seed(Text::toT(i->second)));
}
+ auto queued = QueueManager::getInstance()->getQueued(user);
+
+ if(queued.first) {
+ userInfo->addRow(GridInfo());
+ auto general = userInfo->addChild(Label::Seed(T_("Pending downloads information")));
+ userInfo->setWidget(general, userInfo->rowCount()-1, 0, 1, 2);
+
+ userInfo->addRow(GridInfo());
+ userInfo->addChild(Label::Seed(T_("Queued files")));
+ userInfo->addChild(Label::Seed(Text::toT(Util::toString(queued.first))));
+
+ userInfo->addRow(GridInfo());
+ userInfo->addChild(Label::Seed(T_("Queued bytes")));
+ userInfo->addChild(Label::Seed(Text::toT(Util::formatBytes(queued.second))));
+ }
+
+ auto files = UploadManager::getInstance()->getWaitingUserFiles(user);
+ if(!files.empty()) {
+ userInfo->addRow(GridInfo());
+ auto general = userInfo->addChild(Label::Seed(T_("Pending uploads information")));
+ userInfo->setWidget(general, userInfo->rowCount()-1, 0, 1, 2);
+
+ for(auto i = files.begin(); i != files.end(); ++i) {
+ userInfo->addRow(GridInfo());
+ userInfo->addChild(Label::Seed(T_("Filename")));
+ userInfo->addChild(Label::Seed(Text::toT(*i)));
+ }
+ }
+
layout();
}
@@ -421,14 +475,14 @@
return true;
}
- if((any || showQueue->getChecked()) && QueueManager::getInstance()->getQueued(u) > 0) {
- return true;
- }
-
if((any || showWaiting->getChecked()) && UploadManager::getInstance()->isWaiting(u)) {
return true;
}
+ if((any || showQueue->getChecked()) && QueueManager::getInstance()->getQueued(u).first > 0) {
+ return true;
+ }
+
return false;
}