0028024: Data Exchange - create a convenient mechanism for managing shape healing...
[occt.git] / src / Interface / Interface_Static.cxx
index cbed11b..afa597d 100644 (file)
@@ -407,3 +407,29 @@ Handle(TColStd_HSequenceOfHAsciiString)  Interface_Static::Items
   }
   return list;
 }
+
+//=======================================================================
+// function : FillMap
+// purpose  : Fills given string-to-string map with all static data
+//=======================================================================
+void Interface_Static::FillMap (NCollection_DataMap<TCollection_AsciiString, TCollection_AsciiString, TCollection_AsciiString>& theMap)
+{
+  theMap.Clear();
+
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& aMap = MoniTool_TypedValue::Stats();
+
+  for (NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>::Iterator anIt(aMap); anIt.More(); anIt.Next())
+  {
+    Handle(Interface_Static) aValue = Handle(Interface_Static)::DownCast(anIt.Value());
+    if (aValue.IsNull())
+    {
+      continue;
+    }
+    if (aValue->HStringValue().IsNull())
+    {
+      continue;
+    }
+
+    theMap.Bind (anIt.Key(), aValue->HStringValue()->String());
+  }
+}