Mercurial > hg > orthanc
comparison OrthancServer/Search/Compatibility/DatabaseLookup.cpp @ 3075:ead8576a02ef db-changes
IDatabaseWrapper::ApplyLookupResources now returns lists
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 02 Jan 2019 18:39:25 +0100 |
parents | 5ebd2ef5e7ae |
children | 195ba4cbac3f |
comparison
equal
deleted
inserted
replaced
3074:495c5edce708 | 3075:ead8576a02ef |
---|---|
310 | 310 |
311 return database.GetPublicId(resource); | 311 return database.GetPublicId(resource); |
312 } | 312 } |
313 | 313 |
314 | 314 |
315 void DatabaseLookup::ApplyLookupResources(std::vector<std::string>& resourcesId, | 315 void DatabaseLookup::ApplyLookupResources(std::list<std::string>& resourcesId, |
316 std::vector<std::string>* instancesId, | 316 std::list<std::string>* instancesId, |
317 const std::vector<DatabaseConstraint>& lookup, | 317 const std::vector<DatabaseConstraint>& lookup, |
318 ResourceType queryLevel, | 318 ResourceType queryLevel, |
319 size_t limit) | 319 size_t limit) |
320 { | 320 { |
321 // This is a re-implementation of | 321 // This is a re-implementation of |
387 resources.resize(limit); | 387 resources.resize(limit); |
388 } | 388 } |
389 | 389 |
390 // Get the public ID of all the selected resources | 390 // Get the public ID of all the selected resources |
391 | 391 |
392 resourcesId.resize(resources.size()); | |
393 | |
394 if (instancesId != NULL) | |
395 { | |
396 instancesId->resize(resources.size()); | |
397 } | |
398 | |
399 size_t pos = 0; | 392 size_t pos = 0; |
400 | 393 |
401 for (std::list<int64_t>::const_iterator | 394 for (std::list<int64_t>::const_iterator |
402 it = resources.begin(); it != resources.end(); ++it, pos++) | 395 it = resources.begin(); it != resources.end(); ++it, pos++) |
403 { | 396 { |
404 assert(database_.GetResourceType(*it) == queryLevel); | 397 assert(database_.GetResourceType(*it) == queryLevel); |
405 | 398 |
406 resourcesId[pos] = database_.GetPublicId(*it); | 399 const std::string resource = database_.GetPublicId(*it); |
400 resourcesId.push_back(resource); | |
407 | 401 |
408 if (instancesId != NULL) | 402 if (instancesId != NULL) |
409 { | 403 { |
410 // Collect one child instance for each of the selected resources | |
411 if (queryLevel == ResourceType_Instance) | 404 if (queryLevel == ResourceType_Instance) |
412 { | 405 { |
413 (*instancesId) [pos] = resourcesId[pos]; | 406 // The resource is itself the instance |
407 instancesId->push_back(resource); | |
414 } | 408 } |
415 else | 409 else |
416 { | 410 { |
417 (*instancesId) [pos] = GetOneInstance(database_, *it, queryLevel); | 411 // Collect one child instance for each of the selected resources |
412 instancesId->push_back(GetOneInstance(database_, *it, queryLevel)); | |
418 } | 413 } |
419 } | 414 } |
420 } | 415 } |
421 } | 416 } |
422 } | 417 } |