X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMDS%2FSMDS_MeshIDFactory.cxx;h=a68ae5ad0325a37bfe530818c2349cf123f77c17;hp=6e02557e08b771936625113e0c6bcae92a4873ac;hb=ef932e4d05a45b9a3034423e30519d15e664f2bc;hpb=4791f5b30ea7a9c1247aa551750dc71cb83b99aa diff --git a/src/SMDS/SMDS_MeshIDFactory.cxx b/src/SMDS/SMDS_MeshIDFactory.cxx index 6e02557e0..a68ae5ad0 100644 --- a/src/SMDS/SMDS_MeshIDFactory.cxx +++ b/src/SMDS/SMDS_MeshIDFactory.cxx @@ -25,16 +25,34 @@ // 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); +}