]> jfr.im git - irc/gameservirc.git/blob - gameserv-2.0/libgameservgldl/src/DataLayer/MySQL/MySQLId.cpp
Added mysql++ exception handling to MySQLItemDAO.cpp
[irc/gameservirc.git] / gameserv-2.0 / libgameservgldl / src / DataLayer / MySQL / MySQLId.cpp
1 #include <GameServ/DataLayer/MySQL/MySQLId.h>
2 using GameServ::DataLayer::MySQL::MySQLId;
3
4 #include <string>
5 using std::string;
6
7 #include <GameServ/Types.h>
8 using GameServ::Types::ItemTypes;
9
10 #include <GameServ/GameServException.h>
11 using GameServ::Exceptions::GameServException;
12
13 #include <boost/format.hpp>
14 #include <boost/algorithm/string.hpp>
15 #include <boost/lexical_cast.hpp>
16 using boost::str;
17 using boost::format;
18 using boost::lexical_cast;
19 using boost::bad_lexical_cast;
20
21 MySQLId::MySQLId()
22 {
23 }
24
25 MySQLId::~MySQLId()
26 {
27 }
28
29 string MySQLId::CreatePlayerId(const unsigned long long &Number)
30 {
31 return lexical_cast<string>(Number);
32 }
33
34 unsigned long long MySQLId::GetPlayerNumberFromId(const string &Id)
35 {
36 try
37 {
38 return lexical_cast<unsigned long long>(Id);
39 }
40 catch (bad_lexical_cast)
41 {
42 throw GameServException(str(format("Improperly formatted Player ID: %1%") % Id),
43 __FILE__, __LINE__);
44 }
45 }
46
47 string MySQLId::CreateItemId(const unsigned long long &Number)
48 {
49 return lexical_cast<string>(Number);
50 }
51
52 unsigned long long MySQLId::GetItemNumberFromId(const string &Id)
53 {
54 try
55 {
56 return lexical_cast<unsigned long long>(Id);
57 }
58 catch (bad_lexical_cast)
59 {
60 throw GameServException(str(format("Improperly formatted Item ID: %1%") % Id), __FILE__, __LINE__);
61 }
62 }
63
64 string MySQLId::CreateMonsterId(const string &LevelId, const string &Name)
65 {
66 return str(format("%1%:%2%") % LevelId % Name);
67 }
68
69 string MySQLId::CreateLevelId(const unsigned int &Number)
70 {
71 return lexical_cast<string>(Number);
72 }
73
74 unsigned int MySQLId::GetLevelNumberFromId(const string &Id)
75 {
76 try
77 {
78 return lexical_cast<unsigned int>(Id);
79 }
80 catch (bad_lexical_cast)
81 {
82 throw GameServException(str(format("Improperly formatted Level ID: %1%") % Id), __FILE__, __LINE__);
83 }
84 }
85
86 string MySQLId::CreateMasterId(const unsigned int &LevelNumber, const string &Name)
87 {
88 return str(format("%1%:%2%") % LevelNumber % Name);
89 }