Salome HOME
Remove Opencascade dependencies
[modules/smesh.git] / src / SMDS / SMDS_MeshIDFactory.cxx
index 6e02557e08b771936625113e0c6bcae92a4873ac..a68ae5ad0325a37bfe530818c2349cf123f77c17 100644 (file)
 //  Author : Jean-Michel BOULCOURT
 //  Module : SMESH
 
-using namespace std;
-#include "SMDS_MeshIDFactory.ixx"
 
+#include "SMDS_MeshIDFactory.hxx"
 
 //=======================================================================
 //function : SMDS_MeshIDFactory
 //purpose  : 
 //=======================================================================
 
-SMDS_MeshIDFactory::SMDS_MeshIDFactory() : myMaxID(0)
+SMDS_MeshIDFactory::SMDS_MeshIDFactory():myMaxID(0)
 {
 }
 
+int SMDS_MeshIDFactory::GetFreeID()
+{
+       if (myPoolOfID.empty()) return ++myMaxID;
+       else
+       {
+               int ID = myPoolOfID.top();
+               myPoolOfID.pop();
+               return ID;
+       }
+}
+
+//=======================================================================
+//function : ReleaseID
+//purpose  : 
+//=======================================================================
+void SMDS_MeshIDFactory::ReleaseID(const int ID)
+{
+       if (ID < myMaxID) myPoolOfID.push(ID);
+}