Mercurial > hg > orthanc
diff OrthancServer/DatabaseWrapper.cpp @ 1247:32fcc5dc7562
abstraction
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 08 Dec 2014 13:54:27 +0100 |
parents | 54bf0f0245f4 |
children | b4acdb37e43b |
line wrap: on
line diff
--- a/OrthancServer/DatabaseWrapper.cpp Mon Dec 08 12:56:30 2014 +0100 +++ b/OrthancServer/DatabaseWrapper.cpp Mon Dec 08 13:54:27 2014 +0100 @@ -39,6 +39,7 @@ #include <glog/logging.h> #include <stdio.h> +#include <boost/lexical_cast.hpp> namespace Orthanc { @@ -359,10 +360,11 @@ s.BindInt64(0, id); s.Run(); - if (signalRemainingAncestor_->HasRemainingAncestor()) + if (signalRemainingAncestor_->HasRemainingAncestor() && + listener_ != NULL) { - listener_.SignalRemainingAncestor(signalRemainingAncestor_->GetRemainingAncestorType(), - signalRemainingAncestor_->GetRemainingAncestorId()); + listener_->SignalRemainingAncestor(signalRemainingAncestor_->GetRemainingAncestorType(), + signalRemainingAncestor_->GetRemainingAncestorId()); } } @@ -610,7 +612,8 @@ s.Run(); } - listener_.SignalChange(change); + assert(listener_ != NULL); + listener_->SignalChange(change); } @@ -785,16 +788,13 @@ } - DatabaseWrapper::DatabaseWrapper(const std::string& path, - IServerIndexListener& listener) : - listener_(listener) + DatabaseWrapper::DatabaseWrapper(const std::string& path) : listener_(NULL) { db_.Open(path); Open(); } - DatabaseWrapper::DatabaseWrapper(IServerIndexListener& listener) : - listener_(listener) + DatabaseWrapper::DatabaseWrapper() : listener_(NULL) { db_.OpenInMemory(); Open(); @@ -870,8 +870,13 @@ signalRemainingAncestor_ = new Internals::SignalRemainingAncestor; db_.Register(signalRemainingAncestor_); - db_.Register(new Internals::SignalFileDeleted(listener_)); - db_.Register(new Internals::SignalResourceDeleted(listener_)); + } + + void DatabaseWrapper::SetListener(IServerIndexListener& listener) + { + listener_ = &listener; + db_.Register(new Internals::SignalFileDeleted(listener)); + db_.Register(new Internals::SignalResourceDeleted(listener)); } uint64_t DatabaseWrapper::GetResourceCount(ResourceType resourceType)