45852118cc65036c978169c099cf909ede1249e0
[nepi.git] / src / nepi / util / guid.py
1 #
2 #    NEPI, a framework to manage network experiments
3 #    Copyright (C) 2013 INRIA
4 #
5 #    This program is free software: you can redistribute it and/or modify
6 #    it under the terms of the GNU General Public License version 2 as
7 #    published by the Free Software Foundation;
8 #
9 #    This program is distributed in the hope that it will be useful,
10 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
11 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 #    GNU General Public License for more details.
13 #
14 #    You should have received a copy of the GNU General Public License
15 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 #
17 # Author: Alina Quereilhac <alina.quereilhac@inria.fr>
18
19 # FIXME: This class is not thread-safe. 
20 # Should it be made thread-safe?
21 class GuidGenerator(object):
22     def __init__(self):
23         self._last_guid = 0
24
25     # xxx_next_hiccup - this is used as a plain function, and only in ec.py
26     def next(self, guid = None):
27         if guid == None:
28             guid = self._last_guid + 1
29
30         self._last_guid = self._last_guid if guid <= self._last_guid else guid
31
32         return guid
33