YAPOG  0.0.1
Yet Another Pokemon Online Game
Server.cpp
Go to the documentation of this file.
1 #include "Server/Server.hpp"
13 
14 static void test_db ()
15 {
16  int selection = 0;
17  yap::String username;
18  yap::String password;
19  yap::String email;
21  dm.Connect ();
22  dm.SetLogStream (std::cerr);
23 
24  yse::AccountManager am (dm);
25  yap::String account;
26  bool isRunning = true;
27 
28  try
29  {
30  //pg_stmt ("TRUNCATE account CASCADE", dm.GetConnection ());
31 
32  // Reset the currentIp field
33  yap::String queryString =
34  "UPDATE account SET account_current_ip = NULL";
35 
36  pgs::pg_stmt (queryString, dm.GetConnection ());
37 
38  while (isRunning)
39  {
40  std::cout << "Please select an action:" << std::endl
41  << "1. Login" << std::endl
42  << "2. Create a new account" << std::endl
43  << "3. See all accounts" << std::endl
44  << "4. See logged accounts" << std::endl
45  << "5. Disconnect an account" << std::endl;
46 
47  std::cin >> selection;
48  std::cout << std::endl;
49 
50  switch (selection)
51  {
52  case 1:
53  std::cout << "Login !" << std::endl;
54  std::cout << "Please enter a username: ";
55  std::cin >> username;
56  std::cout << "Password: ";
57  std::cin >> password;
58 
59  am.Login (username, password, "127.0.0.1");
60 
61  std::cout << "Account information:" << std::endl;
62  //am.GetAccount (username).DisplayData ();
63 
64  break;
65  case 2:
66  std::cout << "Create new account !" << std::endl;
67  std::cout << "Please enter a username: ";
68  std::cin >> username;
69  std::cout << "Password: ";
70  std::cin >> password;
71  std::cout << "Email address: ";
72  std::cin >> email;
73 
74  am.CreateNewAccount (username, password, email, "127.0.0.1");
75 
76  break;
77  case 3:
78  std::cout << "See all accounts !" << std::endl;
79  am.DisplayAllAccounts ();
80  break;
81  case 4:
82  std::cout << "See logged accounts !" << std::endl;
84  break;
85  case 5:
86  std::cout << "Disconnect an account !" << std::endl;
87  std::cout << "Please enter a username: ";
88  std::cin >> username;
89  am.Disconnect (username);
90  break;
91  default:
92  std::cout << "Invalid selection !" << std::endl;
93  isRunning = false;
94  break;
95  }
96 
97  std::cout << std::endl;
98  }
99  }
100  catch (const yap::Exception& e)
101  {
102  e.GetMessage (std::cerr) << std::endl;
103  getchar ();
104  getchar ();
105  }
106  catch (const pgs::pg_excpt& e)
107  {
108  std::cerr << e.errmsg () << std::endl;
109  getchar ();
110  getchar ();
111  }
112 }
113 
115 {
116  try
117  {
118  pgs::pg_cnx cnx;
119  cnx.connect("dbname=test "
120  "user=postgres "
121  "password=COUCOU "
122  "port=5432");
123 
124  pgs::pg_stmt ("SET client_encoding = 'UTF8';", cnx);
125 
126  yap::String query_string =
127  "INSERT INTO test(name) VALUES ('รจ')";
128 
129  pgs::pg_stream query
130  (query_string, cnx);
131 
132  std::cout << "Data saved !" << std::endl;
133 
134  getchar ();
135  }
136  catch (pgs::pg_excpt e)
137  {
138  std::cerr << e.errmsg () << std::endl;
139  getchar ();
140  }
141 }
142 
143 void math_test ()
144 {
145  float result = yap::MathHelper::Sqrt (82.f, 2);
146 
147  std::cout << "Result: " << result << std::endl;
148 
149  getchar ();
150 }
151 
152 int main ()
153 {
154  try
155  {
156  //test_db ();
157  //database_test_accent ();
158  //math_test ();
159 
160  std::cout << "Server launched !" << std::endl;
161 
162  yse::Server server;
163 
164  server.Init ();
165 
166  server.Launch ();
167  }
168  catch (const yap::Exception& ex)
169  {
170  ex.GetMessage (std::cout) << std::endl;
171  getchar ();
172  }
173 }