Mercurial > dedupe
comparison ThreadSafeLookup.hpp @ 16:06166d6c083b
Add configuration processing.
Cache DB values
Add a custom RBTree to save space.
Track multiple DB connections properly.
More testing.
Add ValueExistsException.
| author | Tom Fredrik Blenning Klaussen <bfg@blenning.no> |
|---|---|
| date | Tue, 28 Aug 2012 18:58:02 +0200 |
| parents | b5943e4bf676 |
| children | fda70a362ed5 |
comparison
equal
deleted
inserted
replaced
| 15:199fc63c60c1 | 16:06166d6c083b |
|---|---|
| 29 | 29 |
| 30 private: | 30 private: |
| 31 typedef QHash<Key_t, Value_t> map_t; | 31 typedef QHash<Key_t, Value_t> map_t; |
| 32 map_t map; | 32 map_t map; |
| 33 | 33 |
| 34 typename Locking<isLocking>::Lock_t masterLock; | 34 mutable typename Locking<isLocking>::Lock_t masterLock; |
| 35 public: | 35 public: |
| 36 | 36 |
| 37 boost::optional<Value_t> value(const Key_t& key) | 37 boost::optional<Value_t> value(const Key_t& key) const |
| 38 { | 38 { |
| 39 boost::optional<Value_t> retVal; | 39 boost::optional<Value_t> retVal; |
| 40 typename Locking<isLocking>::Locker_t lock(&masterLock); | 40 typename Locking<isLocking>::Locker_t lock(&masterLock); |
| 41 typename map_t::const_iterator c = map.find(key); | 41 typename map_t::const_iterator c = map.find(key); |
| 42 if (c != map.end()) { | 42 if (c != map.end()) { |
