/TGame/TData/Manager/DataManagerImp.h

http://awoe.googlecode.com/ · C Header · 72 lines · 31 code · 19 blank · 22 comment · 0 complexity · 1aab3243cb0bb64ace198ed3e25ca063 MD5 · raw file

  1. #ifndef __DATA_TABLE_IMP__
  2. #define __DATA_TABLE_IMP__
  3. #include "DataManagerIf.h"
  4. #include <hash_map>
  5. //
  6. // Data Manager that use id only
  7. //
  8. class TDATA_API DataManagerImp : public IDataManager
  9. {
  10. public:
  11. DataManagerImp();
  12. virtual ~DataManagerImp();
  13. //
  14. // IData
  15. //
  16. virtual bool set(IData* pData) ;
  17. virtual IData* get(const int& nID, const int& nGrpID )const;
  18. //
  19. // Table Size
  20. //
  21. virtual int size()const ;
  22. //
  23. // Iterator
  24. virtual bool forEach(IDataVisitor& v);
  25. private:
  26. typedef stdext::hash_map<int, IData*> DataMap;
  27. DataMap m_theDataM;
  28. };
  29. //
  30. // Data Manger the use both group id and id
  31. //
  32. class TDATA_API DataManagerImpG : public IDataManager
  33. {
  34. public:
  35. DataManagerImpG();
  36. virtual ~DataManagerImpG();
  37. //
  38. // IData
  39. //
  40. virtual bool set(IData* pData) ;
  41. virtual IData* get(const int& nID, const int& nGrpID )const;
  42. //
  43. // Table Size
  44. //
  45. virtual int size()const ;
  46. //
  47. // Iterator
  48. virtual bool forEach(IDataVisitor& v);
  49. private:
  50. typedef stdext::hash_map<__int64, IData*> DataMap;
  51. DataMap m_theDataM;
  52. };
  53. #endif