diff options
| author | me_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac> | 2012-06-17 21:15:12 +0000 |
|---|---|---|
| committer | me_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac> | 2012-06-17 21:15:12 +0000 |
| commit | 8df9466ada46e4b07990b9cb7e8b1cd61b96844a (patch) | |
| tree | 2cb652e5839bed672133ffa90e7ad477f55cfb6b /pica-client/nodes.cpp | |
| download | pica-pica-8df9466ada46e4b07990b9cb7e8b1cd61b96844a.tar.gz pica-pica-8df9466ada46e4b07990b9cb7e8b1cd61b96844a.zip | |
todo list update
git-svn-id: svn://localhost/project_picapica/trunk@128 fb96df88-216d-11de-830c-f3023f12d8ac
Diffstat (limited to 'pica-client/nodes.cpp')
| -rw-r--r-- | pica-client/nodes.cpp | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/pica-client/nodes.cpp b/pica-client/nodes.cpp new file mode 100644 index 0000000..eb8bfcc --- /dev/null +++ b/pica-client/nodes.cpp @@ -0,0 +1,73 @@ +#include "nodes.h" + +Nodes::Nodes(QString storage) +{ + dbconn=QSqlDatabase::addDatabase("QSQLITE"); + dbconn.setDatabaseName(storage); + + if (!dbconn.open()) + { + lasterr=dbconn.lastError(); + return; + } +//check if table nodes exists +} + +void Nodes::Add(NodeRecord &n) +{ + QSqlQuery query; + + query.prepare("insert into nodes (address, port, last_active, inactive_count) values (:addr, :port, strftime('%s','now'), 0)"); + query.bindValue(":addr",n.address); + query.bindValue(":port",n.port); + query.exec(); + + lasterr=query.lastError(); +} + +QList<Nodes::NodeRecord> Nodes::GetNodes() +{ + QList<NodeRecord> L; + NodeRecord r; + QSqlQuery query; + + query.setForwardOnly(true); + query.exec("select address, port from nodes order by inactive_count asc, last_active desc"); + lasterr=query.lastError(); + + if (lasterr.isValid()) + return L; + + while(query.next()) + { + r.address =query.value(0).toString(); + r.port =query.value(1).toUInt(); + + L<<r; + } + + return L; +} + +void Nodes::MakeClean() +{ + +} + +void Nodes::UpdateStatus(NodeRecord &n, bool alive) +{ + QSqlQuery query; + + if (alive) + query.prepare("update nodes set last_active = strftime('%s','now'), inactive_count = 0 where address = :addr and port = :port"); + else + query.prepare("update nodes set inactive_count = inactive_count + 1 where address = :addr and port = :port"); + + query.bindValue(":addr",n.address); + query.bindValue(":port",n.port); + query.exec(); + + lasterr=query.lastError(); +} + + |
