00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 #ifndef __XVR2_MAP_H__
00015 #define __XVR2_MAP_H__
00016 #include<xvr2/CoreExceptions.h>
00017 #include<xvr2/Mutex.h>
00018 #include<map>
00019  
00020 namespace xvr2 {
00021 
00022         template <typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
00023             typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
00024         class Map : public xvr2::Object, public
00025                 std::map<_Key, _Tp, _Compare, _Alloc> {
00026                 private:
00027                 protected:
00028                         xvr2::Mutex mm;
00029                 public:
00030                         Map() : std::map<_Key, _Tp, _Compare, _Alloc>() { }
00031                         
00032                         
00033                         void lock(){
00034                                 mm.lock();
00035                         }
00036                         void unlock(){
00037                                 mm.unlock();
00038                         }
00039         };
00040 }
00041  
00042 #endif