]>
Commit | Line | Data |
---|---|---|
ce4e8c42 | 1 | #ifndef __GS__FilePlayerDAO_H__\r |
2 | #define __GS__FilePlayerDAO_H__\r | |
3 | \r | |
4 | #include <GameServ/GameLayer/GameObjects/PlayerGO.h>\r | |
5 | #include <GameServ/DataLayer/IPlayerDAO.h>\r | |
6 | using GameServ::GameLayer::GameObjects::PlayerGO;\r | |
7 | using GameServ::DataLayer::DataAccessObjects::IPlayerDAO;\r | |
8 | \r | |
cce88913 | 9 | #include <boost/smart_ptr/shared_ptr.hpp>\r |
ce4e8c42 | 10 | using boost::shared_ptr;\r |
11 | \r | |
12 | #include <string>\r | |
13 | using std::string;\r | |
14 | \r | |
f4f0d89d | 15 | #include <list>\r |
16 | using std::list;\r | |
17 | \r | |
18 | #include <map>\r | |
19 | using std::map;\r | |
20 | \r | |
ce4e8c42 | 21 | namespace GameServ { namespace DataLayer { namespace File\r |
22 | {\r | |
23 | //! File implementation of IPlayerDAO interface\r | |
24 | /*!\r | |
25 | If you're using an File datasource, you will be using this\r | |
26 | DAO to access Players.\r | |
27 | */\r | |
28 | class FilePlayerDAO : public IPlayerDAO\r | |
29 | {\r | |
30 | public:\r | |
31 | // Ctors, Dtors ///////////////////////////////////////////////////////\r | |
32 | FilePlayerDAO(void);\r | |
33 | FilePlayerDAO(const string &filename);\r | |
34 | virtual ~FilePlayerDAO();\r | |
35 | \r | |
36 | // Methods ////////////////////////////////////////////////////////////\r | |
37 | virtual shared_ptr<PlayerGO> GetById(const string &Id) const;\r | |
38 | \r | |
39 | virtual list<string> GetIdsByName(const string &Name) const;\r | |
40 | \r | |
41 | virtual bool IdExists(const string &Id) const;\r | |
42 | \r | |
43 | virtual void Insert(shared_ptr<PlayerGO> spPlayer);\r | |
44 | virtual void Update(shared_ptr<PlayerGO> spPlayer);\r | |
45 | \r | |
2a8a990d | 46 | virtual void SetFlags(shared_ptr<PlayerGO> spPlayer, const int &flags) const;\r |
f4f0d89d | 47 | virtual int GetFlags(shared_ptr<PlayerGO> spPlayer) const;\r |
2a8a990d | 48 | \r |
cb255541 | 49 | void LoadPlayerCache(void);\r |
50 | void WritePlayerCache(void) const;\r | |
51 | \r | |
ce4e8c42 | 52 | private:\r |
53 | //! Data file\r | |
54 | string mFilename;\r | |
55 | \r | |
ce4e8c42 | 56 | // Helper Methods /////////////////////////////////////////////////////\r |
ce4e8c42 | 57 | \r |
58 | //! Creates the PlayerGO found at iterator position\r | |
59 | shared_ptr<PlayerGO> CreatePlayerFromLine(const string &line) const;\r | |
f4f0d89d | 60 | string CreateLineFromPlayer(shared_ptr<PlayerGO> spPlayer) const;\r |
ce4e8c42 | 61 | \r |
62 | //! Get the Player database file path\r | |
63 | string GetPlayerFilePath(void) const;\r | |
64 | \r | |
65 | void Initialize(const string &filename);\r | |
f4f0d89d | 66 | \r |
f4f0d89d | 67 | map<string, shared_ptr<PlayerGO> > spPlayerCache;\r |
ce4e8c42 | 68 | };\r |
69 | } } } // GameServ.DataLayer.DataAccessObjects.File\r | |
70 | \r | |
71 | #endif // __GS__FilePlayerDAO_H__\r |