File indexing completed on 2026-04-09 07:49:39
0001 #pragma once
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include "SYSRAP_API_EXPORT.hh"
0014 #include <unordered_map>
0015
0016 template <typename T>
0017 struct SYSRAP_API SLabelCache
0018 {
0019 typedef std::unordered_map<const void*, T> MVT ;
0020
0021 T missing ;
0022 MVT cache ;
0023
0024 SLabelCache( T missing );
0025
0026 void add(const void* obj, T label);
0027 T find(const void* obj) ;
0028 };
0029
0030
0031 template <typename T>
0032 SLabelCache<T>::SLabelCache(T missing_) : missing(missing_) {}
0033
0034 template <typename T>
0035 inline void SLabelCache<T>::add(const void* obj, T label)
0036 {
0037 cache[obj] = label ;
0038 }
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048 template <typename T>
0049 inline T SLabelCache<T>::find(const void* obj)
0050 {
0051 typename MVT::const_iterator en = cache.end();
0052 typename MVT::const_iterator it = cache.find( obj );
0053 return it == en ? missing : it->second ;
0054 }
0055
0056