]> jfr.im git - irc/gameservirc.git/blame - gameserv-2.0/libgameservgldl/src/DataLayer/File/FilePlayerDAO.cpp
Removed unnecessary user project file
[irc/gameservirc.git] / gameserv-2.0 / libgameservgldl / src / DataLayer / File / FilePlayerDAO.cpp
CommitLineData
ce4e8c42 1#include <GameServ/DataLayer/File/FilePlayerDAO.h>\r
2using GameServ::DataLayer::File::FilePlayerDAO;\r
3#include <GameServ/GameLayer/GameObjects/PlayerGO.h>\r
4using GameServ::GameLayer::GameObjects::PlayerGO;\r
5\r
6#include <GameServ/DataLayer/DataLayerExceptions.h>\r
7using GameServ::DataLayer::Exceptions::ResourceException;\r
8using GameServ::DataLayer::Exceptions::DataLayerException;\r
9\r
10#include <boost/shared_ptr.hpp>\r
11#include <boost/format.hpp>\r
12#include <boost/algorithm/string.hpp>\r
13#include <boost/lexical_cast.hpp>\r
14using boost::shared_ptr;\r
15using boost::format;\r
16using boost::str;\r
17using boost::algorithm::to_upper;\r
18using boost::lexical_cast;\r
19#include <boost/tokenizer.hpp>\r
20typedef boost::tokenizer<boost::char_separator<char> > \r
21 tokenizer;\r
22\r
23#include <string>\r
24using std::string;\r
25\r
26#include <fstream>\r
27using std::ifstream;\r
28using std::getline;\r
29\r
30\r
31\r
32FilePlayerDAO::FilePlayerDAO() : mFilename("players.dat")\r
33{\r
34 Initialize(GetPlayerFilePath());\r
35}\r
36\r
37FilePlayerDAO::FilePlayerDAO(const string &filename)\r
38{\r
39 Initialize(filename);\r
40}\r
41\r
42FilePlayerDAO::~FilePlayerDAO()\r
43{\r
44}\r
45\r
46void FilePlayerDAO::Initialize(const string &filename)\r
47{\r
48 mFilename = filename;\r
49}\r
50\r
51string FilePlayerDAO::GetPlayerFilePath() const\r
52{\r
53 return mFilename;\r
54}\r
55\r
56shared_ptr<PlayerGO> FilePlayerDAO::GetById(const string &Id) const\r
57{\r
58 string line;\r
59 ifstream infile;\r
60 infile.open(GetPlayerFilePath().c_str());\r
61\r
62 if (infile.fail())\r
63 {\r
64 throw ResourceException(str(format("Unable to open file %1%") % GetPlayerFilePath()), __FILE__, __LINE__);\r
65 }\r
66\r
67\r
68 while (getline(infile, line))\r
69 {\r
70 shared_ptr<PlayerGO> spPlayer = CreatePlayerFromLine(line);\r
71 if (spPlayer->Id() == Id)\r
72 {\r
73 return spPlayer;\r
74 }\r
75 }\r
76 return shared_ptr<PlayerGO>();\r
77}\r
78\r
79shared_ptr<PlayerGO> FilePlayerDAO::CreatePlayerFromLine(const string &line) const\r
80{\r
81 shared_ptr<PlayerGO> spPlayer;\r
82 spPlayer = shared_ptr<PlayerGO>(new PlayerGO());\r
2a8a990d 83 boost::char_separator<char> sep(" ", 0, boost::keep_empty_tokens);\r
ce4e8c42 84 tokenizer tokens(line, sep);\r
85 tokenizer::iterator tok_iter = tokens.begin();\r
86\r
2a8a990d 87 spPlayer->Level(lexical_cast<int>((*tok_iter)));\r
88 tok_iter++;\r
89 spPlayer->Experience(lexical_cast<unsigned long int>((*tok_iter)));\r
90 tok_iter++;\r
91 spPlayer->Gold(lexical_cast<unsigned long int>((*tok_iter)));\r
92 tok_iter++;\r
93 spPlayer->Bank(lexical_cast<unsigned long int>((*tok_iter)));\r
94 tok_iter++;\r
95 spPlayer->Health(lexical_cast<int>((*tok_iter)));\r
96 tok_iter++;\r
97 spPlayer->MaxHealth(lexical_cast<int>((*tok_iter)));\r
98 tok_iter++;\r
99 spPlayer->Strength(lexical_cast<int>((*tok_iter)));\r
100 tok_iter++;\r
101 spPlayer->Defense(lexical_cast<int>((*tok_iter)));\r
102 tok_iter++;\r
103 spPlayer->ForestFights(lexical_cast<int>((*tok_iter)));\r
104 tok_iter++;\r
105 spPlayer->PlayerFights(lexical_cast<int>((*tok_iter)));\r
106 tok_iter++;\r
107 int flags = lexical_cast<int>((*tok_iter));\r
108 SetFlags(spPlayer, flags);\r
109 tok_iter++;\r
110 spPlayer->Password((*tok_iter));\r
ce4e8c42 111\r
112 return spPlayer;\r
113}\r
114\r
2a8a990d 115void FilePlayerDAO::SetFlags(shared_ptr<PlayerGO> spPlayer, const int &flags) const\r
116{\r
ce4e8c42 117\r
2a8a990d 118}\r
ce4e8c42 119\r
f21affc9 120void FilePlayerDAO::Update(shared_ptr<PlayerGO> spPlayer)\r
121{\r
122 throw DataLayerException("Undefined Function", __FILE__, __LINE__);\r
123}\r
124\r
125void FilePlayerDAO::Insert(shared_ptr<PlayerGO> spPlayer)\r
126{\r
127 throw DataLayerException("Undefined Function", __FILE__, __LINE__);\r
128}\r
ce4e8c42 129\r
f21affc9 130bool FilePlayerDAO::IdExists(const string &Id) const\r
131{\r
132 throw DataLayerException("Undefined Function", __FILE__, __LINE__);\r
133 return false;\r
134}\r
135\r
136list<string> FilePlayerDAO::GetIdsByName(const string &Name) const\r
137{\r
138 throw DataLayerException("Undefined Function", __FILE__, __LINE__);\r
139}