00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __DATABASEMANAGER_H__
00012 #define __DATABASEMANAGER_H__
00013 #include "RNPlatform/Inc/DLLExportAPI.h"
00014 #include "RNPlatform/Inc/Database.h"
00015
00016 namespace RNReplicaNet
00017 {
00018
00022 template <class T> class DatabaseManager
00023 {
00024 public:
00028 DatabaseManager()
00029 {
00030 }
00031
00035 virtual ~DatabaseManager()
00036 {
00037 }
00038
00043 T *AddItem(T *item)
00044 {
00045 mDatabase.AddItem(item);
00046 return item;
00047 }
00048
00049 T *AddItemHead(T *item)
00050 {
00051 mDatabase.AddItemHead(item);
00052 return item;
00053 }
00054
00059 void RemoveItem(T *item)
00060 {
00061 mDatabase.RemoveItem(item);
00062 }
00063
00067 void RemoveItem(void)
00068 {
00069 mDatabase.RemoveItem();
00070 }
00071
00075 void BeginIterate(void)
00076 {
00077 mDatabase.BeginIterate();
00078 }
00079
00083 void EndIterate(void)
00084 {
00085 mDatabase.EndIterate();
00086 }
00087
00092 T *Iterate(void)
00093 {
00094 return (T *)mDatabase.Iterate();
00095 }
00096
00102 T *FindItem(void *keyData)
00103 {
00104 return (T *)mDatabase.FindItem(keyData);
00105 }
00106
00107 int Tidy(void)
00108 {
00109 return mDatabase.Tidy();
00110 }
00111
00116 void SetEnableFastFind(bool enable = false)
00117 {
00118 mDatabase.SetEnableFastFind(enable);
00119 }
00120
00121 void SetHashFromDataFunc(t_HashFromDataFunc *pfunc)
00122 {
00123 mDatabase.SetHashFromDataFunc(pfunc);
00124 }
00125
00126 void SetHashFromKeyFunc(t_HashFromKeyFunc *pfunc)
00127 {
00128 mDatabase.SetHashFromKeyFunc(pfunc);
00129 }
00130
00131 void SetCompareDataWithKeyFunc(t_CompareDataWithKeyFunc *pfunc)
00132 {
00133 mDatabase.SetCompareDataWithKeyFunc(pfunc);
00134 }
00135
00136
00137
00138 private:
00139 Database mDatabase;
00140 };
00141
00142 }
00143
00144
00145 #endif