X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMDS%2FSMDS_MeshIDFactory.cxx;h=96314592de10318b74ff108f3e67fdae9a8ca67a;hp=6e02557e08b771936625113e0c6bcae92a4873ac;hb=51b21e50a1c9166ce503ce186b642410f601c015;hpb=007c0191337598a9431229b2d3dec7fde25d4c4e diff --git a/src/SMDS/SMDS_MeshIDFactory.cxx b/src/SMDS/SMDS_MeshIDFactory.cxx index 6e02557e0..96314592d 100644 --- a/src/SMDS/SMDS_MeshIDFactory.cxx +++ b/src/SMDS/SMDS_MeshIDFactory.cxx @@ -25,16 +25,36 @@ // Author : Jean-Michel BOULCOURT // Module : SMESH -using namespace std; -#include "SMDS_MeshIDFactory.ixx" +#include "SMDS_MeshIDFactory.hxx" + +using namespace std; //======================================================================= //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 > 0 && ID < myMaxID) myPoolOfID.push(ID); +}