Mercurial > hg > orthanc
diff OrthancServer/ServerIndex.cpp @ 1240:62c35e4b67db
refactoring
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 05 Dec 2014 17:12:35 +0100 |
parents | 92c6b3b57699 |
children | 90d2f320862d |
line wrap: on
line diff
--- a/OrthancServer/ServerIndex.cpp Fri Dec 05 16:22:18 2014 +0100 +++ b/OrthancServer/ServerIndex.cpp Fri Dec 05 17:12:35 2014 +0100 @@ -1027,22 +1027,60 @@ } + static void FormatChanges(Json::Value& target, + const std::list<ServerIndexChange>& changes, + bool done, + int64_t since) + { + Json::Value items = Json::arrayValue; + for (std::list<ServerIndexChange>::const_iterator + it = changes.begin(); it != changes.end(); it++) + { + Json::Value item; + it->Format(item); + items.append(item); + } + + target = Json::objectValue; + target["Changes"] = items; + target["Done"] = done; + + int64_t last = (changes.size() == 0 ? since : changes.back().GetSeq()); + target["Last"] = static_cast<int>(last); + } + + bool ServerIndex::GetChanges(Json::Value& target, int64_t since, unsigned int maxResults) { - boost::mutex::scoped_lock lock(mutex_); - db_->GetChanges(target, since, maxResults); + std::list<ServerIndexChange> changes; + bool done; + + { + boost::mutex::scoped_lock lock(mutex_); + db_->GetChanges(changes, done, since, maxResults); + } + + FormatChanges(target, changes, done, since); return true; } + bool ServerIndex::GetLastChange(Json::Value& target) { - boost::mutex::scoped_lock lock(mutex_); - db_->GetLastChange(target); + std::list<ServerIndexChange> changes; + + { + boost::mutex::scoped_lock lock(mutex_); + db_->GetLastChange(changes); + } + + FormatChanges(target, changes, true, 0); return true; } + void ServerIndex::LogExportedResource(const std::string& publicId, const std::string& remoteModality) {