16 #include <nn/pia/framework/framework_Definitions.h>
18 #if NN_PIA_FRAMEWORK_ENABLE_PLAY
20 #include <nn/pia/framework/framework_InetService.h>
22 #include <nn/pia/play/play_PlayNetworkFactory.h>
37 class PlayService :
public InetService
43 struct InitializePlayServiceSetting :
public InitializeInetServiceSetting
49 static void OnAuthActionStartedCallback(gpg::AuthOperation op);
50 static void OnAuthActionFinishedCallback(gpg::AuthOperation op, gpg::AuthStatus status);
51 static void OnQuestCompletedCallback(gpg::Quest quest);
65 virtual ~PlayService();
68 virtual Result LoginFriendServer()
70 return ResultSuccess();
73 virtual Result LogoutFriendServer()
75 return ResultSuccess();
83 virtual Result InitializeInet(
const InitializeInetSetting& setting);
88 virtual void FinalizeInet();
95 virtual Result InitializeInetService(
const InitializeInetServiceSetting& setting);
100 virtual void FinalizeInetService();
106 virtual Result Dispatch();
112 virtual Result CheckConnection();
118 virtual transport::NetworkFactory* GetNetworkFactory();
126 virtual Result LoginGameServer(
const InitializeInetSetting& setting, uint32_t timeout = 30 * 1000);
132 virtual bool IsInLoginProcess()
134 return s_IsAuthActionInProcess;
141 virtual bool IsInLogoutProcess()
143 return s_IsAuthActionInProcess;
151 virtual Result PreLoginProcess(
const InitializeInetSetting& setting);
157 virtual bool IsInPreLoginProcess()
167 virtual Result PostLoginProcess();
173 virtual Result LogoutGameServer(
bool isBlock,
bool isInChangeStateAsync);
175 virtual Result GetLogoutOutcome();
177 bool IsLoggedIn(
const InitializeInetSetting& setting)
const;
199 bool IsLoginCompleted()
const;
208 Result GetLoginResult()
const;
222 Result LogoutAsync();
230 bool IsLogoutCompleted()
const;
239 Result GetLogoutResult()
const;
245 bool IsLoggedIn()
const;
248 static bool s_IsAuthActionInProcess;
249 static bool s_IsAuthActionSuccess;
251 bool m_IsNexInitialized;
252 bool m_IsInetInitialized;
254 play::PlayNetworkFactory m_PlayNetworkFactory;
256 std::unique_ptr<gpg::GameServices> m_GameServices;
258 NN_PIA_DISALLOW_COPY(PlayService);