00001
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef NL_LOGIN_CLIENT_H
00029 #define NL_LOGIN_CLIENT_H
00030
00031 #include "nel/misc/types_nl.h"
00032
00033 #include <string>
00034 #include <vector>
00035
00036 #include "nel/net/callback_client.h"
00037
00038 namespace NLNET
00039 {
00040
00041 class CLoginCookie;
00042 class CUdpSock;
00043 class IDisplayer;
00044
00059 class CLoginClient {
00060 public:
00061
00062 struct CShardEntry
00063 {
00064 std::string ShardName;
00065 std::string WSAddr;
00066 };
00067
00068 typedef std::vector<CShardEntry> TShardList;
00069
00070
00074 static void setInformations (std::string gfxInfos) { _GfxInfos = gfxInfos; }
00075
00076
00083 static std::string authenticate (const std::string &loginServiceAddr, const std::string &login, const std::string &password, uint32 clientVersion);
00084
00085
00088 static std::string connectToShard (uint32 shardListIndex, CCallbackClient &cnx);
00089
00092 static std::string connectToShard (uint32 shardListIndex, CUdpSock &cnx, CLoginCookie &cookie);
00093
00094 static TShardList ShardList;
00095
00096 private:
00097
00098 static std::string confirmConnection (uint32 shardListIndex);
00099
00100 static std::string _GfxInfos;
00101
00102 static CCallbackClient *_CallbackClient;
00103
00104 };
00105
00106
00107 }
00108
00109 #endif // NL_LOGIN_CLIENT_H
00110
00111