1 #include <ossim/base/ossimIdManager.h> 2 #include <time.h> 3 #ifndef NULL 4 #include <stddef.h> 5 #endif 6 7 8 ossim_int64 ossimIdManager::theCurrentId = ossimId::INVALID_ID; 9 ossimIdManager* ossimIdManager::theInstance = NULL; 10 ossimIdManager()11ossimIdManager::ossimIdManager() 12 { 13 theCurrentId=ossimId::INVALID_ID; 14 } 15 ossimIdManager(const ossimIdManager &)16ossimIdManager::ossimIdManager(const ossimIdManager& /* rhs */) 17 { 18 theCurrentId=ossimId::INVALID_ID; 19 } 20 ~ossimIdManager()21ossimIdManager::~ossimIdManager() 22 { 23 theCurrentId=ossimId::INVALID_ID; 24 } 25 instance()26ossimIdManager* ossimIdManager::instance() 27 { 28 if(!theInstance) 29 { 30 theInstance = new ossimIdManager; 31 theCurrentId = -1; 32 } 33 34 return theInstance; 35 } 36 generateId()37ossimId ossimIdManager::generateId() 38 { 39 return ossimId(++theCurrentId); 40 } 41 generateId(ossim_int64 customId)42ossimId ossimIdManager::generateId(ossim_int64 customId) 43 { 44 if(customId <= theCurrentId) 45 { 46 return ossimId(++theCurrentId); 47 } 48 theCurrentId = customId; 49 return ossimId(theCurrentId); 50 } 51 setCurrentId(ossim_int64 currentId)52void ossimIdManager::setCurrentId(ossim_int64 currentId) 53 { 54 theCurrentId = (currentId >=0) ? currentId: theCurrentId; 55 } 56 operator =(const ossimIdManager &)57void ossimIdManager::operator=(const ossimIdManager& /* rhs */) 58 {} 59