Main Page | Class Hierarchy | Class List | Directories | File List | Class Members

DatabaseManager.h

00001 /* START_LICENSE_HEADER
00002 
00003 Copyright (C) 2000 Martin Piper, original design and program code
00004 Copyright (C) 2001-2005 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 Sun Oct 30 01:12:31 2005 for Platform by  doxygen 1.4.1