00001 00007 #ifndef __POINTERLOOKUP_H__ 00008 #define __POINTERLOOKUP_H__ 00009 00010 #include <string> 00011 using std::string; 00012 00013 00017 template<class T, class K=string> 00018 class PointerLookup { 00019 public: 00021 typedef K key_type; 00022 00024 typedef T* data_type; 00025 00026 virtual ~PointerLookup() { } 00027 00030 virtual T* getptr(const key_type& k)=0; 00031 00033 virtual const T* getptr(const key_type& k) const=0; 00034 }; 00035 00036 00037 #endif /* __POINTERLOOKUP_H__ */