Monobit Unity Networking ver.2.8.0 Server API Reference (C++)
MunProxySessionToCustomAuthServer.hpp
Go to the documentation of this file.
1 
7 #ifndef __MUN_PROXY_SESSION_TO_AUTH_SERVER_HPP__
8 #define __MUN_PROXY_SESSION_TO_AUTH_SERVER_HPP__
9 
10 #include <string>
11 #include <vector>
12 #include <curl/multi.h>
13 #ifdef _WIN32
14 #include <windows.h>
15 #include <process.h>
16 #else
17 #include <pthread.h>
18 #endif
19 #include <mrs.hpp>
21 
26 {
27 private:
31  enum ERRORCODE
32  {
33  ERRORCODE_NONE = 0,
34  ERRORCODE_WAIT = 1,
35  ERRORCODE_SUCCEEDED = 2,
36  ERRORCODE_FAILURE = -1,
37  };
38 
42  class CURLInfo
43  {
44  public:
46  MrsConnection m_pMunClient;
47 
49  uint64 m_StartTime;
50 
52  ERRORCODE m_ErrorCode;
53 
55  bool m_IsIgnoreError;
56 
58 #if _WIN32
59  HANDLE m_Thread;
60 #else
61  pthread_t m_Thread;
62 #endif
63 
64  uint32 m_SendCount;
65 
67  uint32 m_ReceivedCount;
68 
70  std::string m_Url;
71 
73  std::vector<std::string> m_SendData;
74 
76  std::vector<std::string> m_ReceivedData;
77 
81  CURLInfo()
82  {
83  m_pMunClient = NULL;
84  m_StartTime = 0;
85  m_ErrorCode = ERRORCODE_NONE;
86  m_IsIgnoreError = false;
87 #if _WIN32
88  m_Thread = NULL;
89 #else
90  m_Thread = 0;
91 #endif
92  m_Url = "";
93  m_SendCount = 0;
94  m_ReceivedCount = 0;
95  }
96  };
97 
98 private:
100  static bool s_IsUseCustomAuthServer;
101 
103  static std::string s_CustomAuthServerAddress;
104 
106  static uint64 s_CustomAuthServerWaitLimit;
107 
109  static std::list<CURLInfo*> s_CurlList;
110 
111 protected:
116 #ifdef _WIN32
117  static unsigned __stdcall OpThread(void * pData);
118 #else
119  static void* OpThread(void * pData);
120 #endif
121 
130  static size_t OpSendPayload(void *ptr, size_t size, size_t num, void * pData);
131 
140  static size_t OpReceivedPayload(void *ptr, size_t size, size_t num, void * pData);
141 
142 public:
148  static bool Initialize(MunProxyConfigure& configure);
149 
160  static bool OpSend(MrsConnection pMunClient, bool isUseDefaultUrl, std::string customAuthServerAddr, bool isIgnoreError, std::string getParam, std::string body);
161 
165  static void Update();
166 
170  static void Finalize();
171 
177  static void Send_Relay_Anything(MrsConnection pMunClient, uint16 payload_type, MunBuffer& buffer);
178 
179 private:
185  static void OnNewTcpConnectionCallback(MrsServer pMunProxy, void* server_data, MrsConnection pMunClient);
186 
192  static void OnNewUdpConnectionCallback(MrsServer pMunProxy, void* server_data, MrsConnection pMunClient);
193 
198  static void OnDisconnectTcpCallback(MrsConnection pMunClient, void* connection_data);
199 
204  static void OnDisconnectUdpCallback(MrsConnection pMunClient, void* connection_data);
205 
211  static void OnErrorTcpCallback(MrsConnection pMunClient, void* connection_data, MrsConnectionError status);
212 
218  static void OnErrorUdpCallback(MrsConnection pMunClient, void* connection_data, MrsConnectionError status);
219 
229  static void OnReadRecordCallback(MrsConnection pMunClient, void* connection_data, uint32 seqnum, uint16 options, uint16 payload_type, const void* payload, uint32 payload_len);
230 };
231 
232 #endif /* __MUN_PROXY_SESSION_TO_AUTH_SERVER_HPP__ */
mrs::Buffer の拡張クラス.
Definition: MunBuffer.hpp:17
static bool OpSend(MrsConnection pMunClient, bool isUseDefaultUrl, std::string customAuthServerAddr, bool isIgnoreError, std::string getParam, std::string body)
カスタム認証サーバにトークンを投げる.
Definition: MunProxySessionToCustomAuthServer.cpp:52
カスタム認証サーバとのネットワーク接続処理クラス.
Definition: MunProxySessionToCustomAuthServer.hpp:25
static size_t OpSendPayload(void *ptr, size_t size, size_t num, void *pData)
カスタム認証サーバへの送信処理.
Definition: MunProxySessionToCustomAuthServer.cpp:260
mun_proxy サーバの設定.
Definition: MunProxyConfigure.hpp:29
static void Finalize()
終了処理.
Definition: MunProxySessionToCustomAuthServer.cpp:181
static void Send_Relay_Anything(MrsConnection pMunClient, uint16 payload_type, MunBuffer &buffer)
MUNクライアントに対し、mun_masterサーバから受信した情報を渡す.
static void Update()
更新処理.
Definition: MunProxySessionToCustomAuthServer.cpp:100
static void * OpThread(void *pData)
カスタム認証サーバに対するスレッド.
Definition: MunProxySessionToCustomAuthServer.cpp:204
static size_t OpReceivedPayload(void *ptr, size_t size, size_t num, void *pData)
カスタム認証サーバからの受信処理.
Definition: MunProxySessionToCustomAuthServer.cpp:293
mun_proxyサーバの設定.
static bool Initialize(MunProxyConfigure &configure)
初期化処理.
Definition: MunProxySessionToCustomAuthServer.cpp:29