diff Framework/Viewport/WebGLViewportsRegistry.cpp @ 1235:e71ee3e88448 broker

WebGLViewportsRegistry in milliseconds, and Clear()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 09 Dec 2019 20:25:22 +0100
parents a28861abf888
children b9b5d4378874
line wrap: on
line diff
--- 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<double>(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)