diff options
author | Mike Buland <eichlan@xagasoft.com> | 2013-07-20 15:17:39 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2013-07-20 15:17:39 +0000 |
commit | e97cac3fbab4a00faeb3ddec08846307670b9a0e (patch) | |
tree | 2a376981cb234c7278a463edc595363980b9bd4a /src/unstable/cacheobject.h | |
parent | 51eef132bb2bb67e658756eaebeae5e52c13de98 (diff) | |
download | libbu++-e97cac3fbab4a00faeb3ddec08846307670b9a0e.tar.gz libbu++-e97cac3fbab4a00faeb3ddec08846307670b9a0e.tar.bz2 libbu++-e97cac3fbab4a00faeb3ddec08846307670b9a0e.tar.xz libbu++-e97cac3fbab4a00faeb3ddec08846307670b9a0e.zip |
Added a Locker class to the Bu::CacheObject base class. This is a super simple
wrapper that lets you take advantage of nifty Locker based mutex locking when
in a CacheObject subclass.
Diffstat (limited to 'src/unstable/cacheobject.h')
-rw-r--r-- | src/unstable/cacheobject.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/unstable/cacheobject.h b/src/unstable/cacheobject.h index 4606493..e83f706 100644 --- a/src/unstable/cacheobject.h +++ b/src/unstable/cacheobject.h | |||
@@ -33,6 +33,7 @@ namespace Bu | |||
33 | { | 33 | { |
34 | } | 34 | } |
35 | 35 | ||
36 | typedef CacheObject<keytype, obtype> MyType; | ||
36 | typedef CacheBase<keytype, obtype> CacheType; | 37 | typedef CacheBase<keytype, obtype> CacheType; |
37 | 38 | ||
38 | virtual keytype getKey() const=0; | 39 | virtual keytype getKey() const=0; |
@@ -62,6 +63,24 @@ namespace Bu | |||
62 | return bChanged; | 63 | return bChanged; |
63 | } | 64 | } |
64 | 65 | ||
66 | class Locker | ||
67 | { | ||
68 | public: | ||
69 | Locker( const MyType *pObj ) : | ||
70 | pObj( pObj ) | ||
71 | { | ||
72 | pObj->lock(); | ||
73 | } | ||
74 | |||
75 | ~Locker() | ||
76 | { | ||
77 | pObj->unlock(); | ||
78 | } | ||
79 | |||
80 | private: | ||
81 | const MyType *pObj; | ||
82 | }; | ||
83 | |||
65 | protected: | 84 | protected: |
66 | void changed( bool bChanged=true ) | 85 | void changed( bool bChanged=true ) |
67 | { | 86 | { |