Mercurial > hg > svcore
comparison base/ById.cpp @ 1768:4fec4527e50e
Remove debug output (by default)
| author | Chris Cannam | 
|---|---|
| date | Thu, 18 Jul 2019 13:28:14 +0100 | 
| parents | ee7fd2c01d87 | 
| children | c7e9e63c7bae | 
   comparison
  equal
  deleted
  inserted
  replaced
| 1767:aa0b56d72f27 | 1768:4fec4527e50e | 
|---|---|
| 14 | 14 | 
| 15 #include "ById.h" | 15 #include "ById.h" | 
| 16 | 16 | 
| 17 #include <unordered_map> | 17 #include <unordered_map> | 
| 18 #include <typeinfo> | 18 #include <typeinfo> | 
| 19 | |
| 20 //#define DEBUG_BY_ID 1 | |
| 19 | 21 | 
| 20 int IdAlloc::getNextId() | 22 int IdAlloc::getNextId() | 
| 21 { | 23 { | 
| 22 static int nextId = 0; | 24 static int nextId = 0; | 
| 23 static QMutex mutex; | 25 static QMutex mutex; | 
| 68 int add(std::shared_ptr<WithId> item) { | 70 int add(std::shared_ptr<WithId> item) { | 
| 69 int id = item->getUntypedId(); | 71 int id = item->getUntypedId(); | 
| 70 if (id == IdAlloc::NO_ID) { | 72 if (id == IdAlloc::NO_ID) { | 
| 71 throw std::logic_error("item id should never be NO_ID"); | 73 throw std::logic_error("item id should never be NO_ID"); | 
| 72 } | 74 } | 
| 75 #ifdef DEBUG_BY_ID | |
| 73 SVCERR << "ById::add(#" << id << ") of type " | 76 SVCERR << "ById::add(#" << id << ") of type " | 
| 74 << typeid(*item.get()).name() << endl; | 77 << typeid(*item.get()).name() << endl; | 
| 78 #endif | |
| 75 QMutexLocker locker(&m_mutex); | 79 QMutexLocker locker(&m_mutex); | 
| 76 if (m_items.find(id) != m_items.end()) { | 80 if (m_items.find(id) != m_items.end()) { | 
| 77 SVCERR << "ById::add: item with id " << id | 81 SVCERR << "ById::add: item with id " << id | 
| 78 << " is already recorded (existing item type is " | 82 << " is already recorded (existing item type is " | 
| 79 << typeid(*m_items.find(id)->second.get()).name() | 83 << typeid(*m_items.find(id)->second.get()).name() | 
| 87 | 91 | 
| 88 void release(int id) { | 92 void release(int id) { | 
| 89 if (id == IdAlloc::NO_ID) { | 93 if (id == IdAlloc::NO_ID) { | 
| 90 return; | 94 return; | 
| 91 } | 95 } | 
| 96 #ifdef DEBUG_BY_ID | |
| 92 SVCERR << "ById::release(#" << id << ")" << endl; | 97 SVCERR << "ById::release(#" << id << ")" << endl; | 
| 98 #endif | |
| 93 QMutexLocker locker(&m_mutex); | 99 QMutexLocker locker(&m_mutex); | 
| 94 if (m_items.find(id) == m_items.end()) { | 100 if (m_items.find(id) == m_items.end()) { | 
| 95 SVCERR << "ById::release: unknown item id " << id << endl; | 101 SVCERR << "ById::release: unknown item id " << id << endl; | 
| 96 throw std::logic_error("unknown item id in release"); | 102 throw std::logic_error("unknown item id in release"); | 
| 97 } | 103 } | 
