DatabaseManager.h

00001 /* START_LICENSE_HEADER
00002 
00003 Copyright (C) 2000 Martin Piper, original design and program code
00004 Copyright (C) 2001 Replica Software
00005 
00006 This program file is copyright (C) Replica Software and can only be used under license.
00007 For more information visit: http://www.replicanet.com/
00008 Or email: info@replicanet.com
00009 
00010 END_LICENSE_HEADER */
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 } // namespace RNReplicaNet
00143 
00144 
00145 #endif

Generated on Sat Jun 28 22:02:16 2008 for ReplicaNet and RNLobby by  doxygen 1.5.3