Salome HOME
land cover map icon
[modules/hydro.git] / src / HYDROData / HYDROData_Application.cxx
index 3c03259b597c8cadfde7756745c6c8e746c0e42b..04a0e18b9c85ca06c86a8a33d71e4acc2f9d1ba2 100644 (file)
@@ -1,8 +1,25 @@
+// Copyright (C) 2014-2015  EDF-R&D
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
 #include <HYDROData_Application.h>
 
 #include <TColStd_SequenceOfExtendedString.hxx>
 
-IMPLEMENT_STANDARD_HANDLE(HYDROData_Application,TDocStd_Application)
 IMPLEMENT_STANDARD_RTTIEXT(HYDROData_Application,TDocStd_Application)
 
 static HYDROData_Application* TheApplication = new HYDROData_Application;
@@ -17,10 +34,30 @@ HYDROData_Application* HYDROData_Application::GetApplication()
 }
 
 //=======================================================================
-//function : getDocument
+//function : GetDocument
+//purpose  : 
+//=======================================================================
+bool HYDROData_Application::GetDocumentId(const Handle(HYDROData_Document)& theDocument,
+                                          int&                              theDocId) const
+{
+  DataMapOfStudyIDDocument::Iterator aMapit( myDocuments );
+  for ( ; aMapit.More(); aMapit.Next() )
+  {
+    if ( aMapit.Value() != theDocument )
+      continue;
+
+    theDocId = aMapit.Key();
+    return true;
+  }
+
+  return false;
+}
+
+//=======================================================================
+//function : GetDocument
 //purpose  : 
 //=======================================================================
-Handle(HYDROData_Document) HYDROData_Application::GetDocument(int theStudyID)
+Handle(HYDROData_Document) HYDROData_Application::GetDocument(int theStudyID) const
 {
   if (myDocuments.IsBound(theStudyID)) {
     return myDocuments.Find(theStudyID);
@@ -44,7 +81,7 @@ HYDROData_Application::HYDROData_Application ()
 //function : addDocument
 //purpose  : 
 //=======================================================================
-void HYDROData_Application::AddDocument(int theStudyID, Handle(HYDROData_Document) theDocument)
+void HYDROData_Application::AddDocument(int theStudyID, const Handle(HYDROData_Document)& theDocument)
 {
   myDocuments.Bind(theStudyID, theDocument);
 }
@@ -53,7 +90,7 @@ void HYDROData_Application::AddDocument(int theStudyID, Handle(HYDROData_Documen
 //function : removeDocument
 //purpose  : 
 //=======================================================================
-void HYDROData_Application::RemoveDocument(Handle(HYDROData_Document) theDocument)
+void HYDROData_Application::RemoveDocument(const Handle(HYDROData_Document)& theDocument)
 {
   DataMapOfStudyIDDocument::Iterator anIter(myDocuments);
   for(; anIter.More(); anIter.Next())