Mercurial > hg > svcore
comparison base/ById.h @ 1744:b92bdcd4954b by-id
Update FFT model to ById
author | Chris Cannam |
---|---|
date | Tue, 02 Jul 2019 11:49:28 +0100 |
parents | 52705a328b34 |
children | 826e0cb77d8e |
comparison
equal
deleted
inserted
replaced
1743:7001b9570e37 | 1744:b92bdcd4954b |
---|---|
24 | 24 |
25 #include <QMutex> | 25 #include <QMutex> |
26 #include <QString> | 26 #include <QString> |
27 | 27 |
28 #include "XmlExportable.h" | 28 #include "XmlExportable.h" |
29 | |
30 //!!! todo: docs | |
29 | 31 |
30 struct IdAlloc { | 32 struct IdAlloc { |
31 | 33 |
32 // The value NO_ID (-1) is never allocated | 34 // The value NO_ID (-1) is never allocated |
33 static const int NO_ID = -1; | 35 static const int NO_ID = -1; |
151 release(item->getId()); | 153 release(item->getId()); |
152 } | 154 } |
153 | 155 |
154 template <typename Derived> | 156 template <typename Derived> |
155 static std::shared_ptr<Derived> getAs(Id id) { | 157 static std::shared_ptr<Derived> getAs(Id id) { |
156 if (id.isNone()) return {}; // this id is never issued: avoid locking | |
157 return AnyById::getAs<Derived>(id.untyped); | 158 return AnyById::getAs<Derived>(id.untyped); |
158 } | 159 } |
159 | 160 |
160 static std::shared_ptr<Item> get(Id id) { | 161 static std::shared_ptr<Item> get(Id id) { |
161 return getAs<Item>(id); | 162 return getAs<Item>(id); |