Mercurial > hg > orthanc-stone
diff UnitTestsSources/UnitTestsMain.cpp @ 66:298f375dcb68 wasm
LayerWidget
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 17 May 2017 22:03:09 +0200 |
parents | 885932a893de |
children | acb60cbb8301 |
line wrap: on
line diff
--- a/UnitTestsSources/UnitTestsMain.cpp Tue May 16 22:12:41 2017 +0200 +++ b/UnitTestsSources/UnitTestsMain.cpp Wed May 17 22:03:09 2017 +0200 @@ -24,6 +24,7 @@ #include "../Resources/Orthanc/Core/Logging.h" #include "../Framework/Toolbox/OrthancWebService.h" #include "../Framework/Layers/OrthancFrameLayerSource.h" +#include "../Framework/Widgets/LayerWidget.h" namespace OrthancStone @@ -60,6 +61,97 @@ { } }; + + + + /*class OrthancInstanceLoader : public IWebService::ICallback + { + public: + class ICallback : public boost::noncopyable + { + public: + virtual ~ICallback() + { + } + + virtual void NotifyInstanceLoaded(const std::string& instanceId, + const OrthancPlugins::FullOrthancDataset& dicom) = 0; + + virtual void NotifyInstanceError(const std::string& instanceId) = 0; + }; + + private: + class Operation : public Orthanc::IDynamicObject + { + private: + ICallback& callback_; + std::string instanceId_; + + public: + Operation(ICallback& callback, + const std::string& instanceId) : + callback_(callback), + instanceId_(instanceId) + { + } + + ICallback& GetCallback() + { + return callback_; + } + + const std::string& GetInstanceId() const + { + return instanceId_; + } + }; + + IWebService& orthanc_; + + public: + OrthancInstanceLoader(IWebService& orthanc) : + orthanc_(orthanc) + { + } + + void ScheduleLoadInstance(ICallback& callback, + const std::string& instanceId) + { + orthanc_.ScheduleGetRequest(*this, + "/instances/" + instanceId + "/tags", + new Operation(callback, instanceId)); + } + + void NotifySuccess(const std::string& uri, + const void* answer, + size_t answerSize, + Orthanc::IDynamicObject* payload) + { + std::auto_ptr<Operation> operation(reinterpret_cast<Operation*>(payload)); + + try + { + OrthancPlugins::FullOrthancDataset dataset(answer, answerSize); + operation->GetCallback().NotifyInstanceLoaded(operation->GetInstanceId(), dataset); + } + catch (Orthanc::OrthancException&) + { + operation->GetCallback().NotifyInstanceError(operation->GetInstanceId()); + } + } + + void NotifyError(const std::string& uri, + Orthanc::IDynamicObject* payload) + { + std::auto_ptr<Operation> operation(reinterpret_cast<Operation*>(payload)); + + LOG(ERROR) << "Cannot download " << uri; + operation->GetCallback().NotifyInstanceError(operation->GetInstanceId()); + } + };*/ + + + } @@ -75,6 +167,10 @@ OrthancStone::SliceGeometry slice; source.ScheduleLayerCreation(slice); + + + OrthancStone::LayerWidget widget; + printf(">> %d\n", widget.AddLayer(new OrthancStone::OrthancFrameLayerSource(orthanc, "befb52a6-b4b04954-b5a019c3-fdada9d7-dddc9430", 0))); }