# HG changeset patch # User Sebastien Jodogne # Date 1575919522 -3600 # Node ID e71ee3e8844859850362f167b00bb90006ef89b8 # Parent e99e09143c64852cfb1296bdc57b29ad34da6b28 WebGLViewportsRegistry in milliseconds, and Clear() diff -r e99e09143c64 -r e71ee3e88448 Framework/Viewport/WebGLViewportsRegistry.cpp --- a/Framework/Viewport/WebGLViewportsRegistry.cpp Mon Dec 09 17:48:54 2019 +0100 +++ b/Framework/Viewport/WebGLViewportsRegistry.cpp Mon Dec 09 20:25:22 2019 +0100 @@ -27,7 +27,7 @@ { void WebGLViewportsRegistry::LaunchTimer() { - emscripten_set_timeout(OnTimeoutCallback, 1000.0 * static_cast(timeoutSeconds_), this); + emscripten_set_timeout(OnTimeoutCallback, timeoutMS_, this); } @@ -88,30 +88,18 @@ } - WebGLViewportsRegistry::WebGLViewportsRegistry(unsigned int timeoutSeconds) : - timeoutSeconds_(timeoutSeconds) + WebGLViewportsRegistry::WebGLViewportsRegistry(double timeoutMS) : + timeoutMS_(timeoutMS) { - if (timeoutSeconds <= 0) + if (timeoutMS <= 0) { throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); } - + LaunchTimer(); } - - WebGLViewportsRegistry::~WebGLViewportsRegistry() - { - for (Viewports::iterator it = viewports_.begin(); it != viewports_.end(); ++it) - { - if (it->second != NULL) - { - delete it->second; - } - } - } - void WebGLViewportsRegistry::Add(const std::string& canvasId) { if (viewports_.find(canvasId) != viewports_.end()) @@ -146,6 +134,20 @@ } + void WebGLViewportsRegistry::Clear() + { + for (Viewports::iterator it = viewports_.begin(); it != viewports_.end(); ++it) + { + if (it->second != NULL) + { + delete it->second; + } + } + + viewports_.clear(); + } + + WebGLViewportsRegistry::Accessor::Accessor(WebGLViewportsRegistry& that, const std::string& canvasId) : that_(that) diff -r e99e09143c64 -r e71ee3e88448 Framework/Viewport/WebGLViewportsRegistry.h --- a/Framework/Viewport/WebGLViewportsRegistry.h Mon Dec 09 17:48:54 2019 +0100 +++ b/Framework/Viewport/WebGLViewportsRegistry.h Mon Dec 09 20:25:22 2019 +0100 @@ -38,8 +38,8 @@ private: typedef std::map Viewports; - unsigned int timeoutSeconds_; - Viewports viewports_; + double timeoutMS_; + Viewports viewports_; void LaunchTimer(); @@ -48,14 +48,19 @@ static void OnTimeoutCallback(void *userData); public: - WebGLViewportsRegistry(unsigned int timeoutSeconds); + WebGLViewportsRegistry(double timeoutMS /* in milliseconds */); - ~WebGLViewportsRegistry(); + ~WebGLViewportsRegistry() + { + Clear(); + } void Add(const std::string& canvasId); void Remove(const std::string& canvasId); + void Clear(); + class Accessor : public boost::noncopyable { private: