static int _CreateInputNetworkConnectStatusEvent(IntPtr L) { try { int count = LuaDLL.lua_gettop(L); if (count == 0) { InputNetworkConnectStatusEvent obj = new InputNetworkConnectStatusEvent(); ToLua.PushObject(L, obj); return(1); } else if (count == 1 && TypeChecker.CheckTypes(L, 1, typeof(NetworkState))) { NetworkState arg0 = (NetworkState)ToLua.CheckObject(L, 1, typeof(NetworkState)); InputNetworkConnectStatusEvent obj = new InputNetworkConnectStatusEvent(arg0); ToLua.PushObject(L, obj); return(1); } else { return(LuaDLL.luaL_throw(L, "invalid arguments to ctor method: InputNetworkConnectStatusEvent.New")); } } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
protected virtual void ReceviceConnectStatus(InputNetworkConnectStatusEvent e) { if (e.m_status == NetworkState.Connected) { ResetSendTimer(); ResetReceviceTimer(); } }
void ReceviceSocketStatus(InputNetworkConnectStatusEvent e) { isConnect = false; if (e.m_status == NetworkState.Connected) { ApplicationStatusManager.GetStatus <LoginState>().Login(SystemInfo.deviceUniqueIdentifier, UserData.NickName); } }
const int c_connectMsgPool = 2; //网络连接事件池大小 public static void DispatchStatusEvent(NetworkState status) { //只有允许输入时才派发事件 if (IsActive) { InitPool(); InputNetworkConnectStatusEvent e = GetConnectMsgEvent(status); InputManager.Dispatch <InputNetworkConnectStatusEvent>(e); } }
static InputNetworkConnectStatusEvent GetConnectMsgEvent(NetworkState status) { InputNetworkConnectStatusEvent msg = m_connectMsgPool[m_connectIndex]; msg.Reset(); msg.m_status = status; m_connectIndex++; if (m_connectIndex >= m_connectMsgPool.Length) { m_connectIndex = 0; } return(msg); }
static int set_m_status(IntPtr L) { object o = null; try { o = ToLua.ToObject(L, 1); InputNetworkConnectStatusEvent obj = (InputNetworkConnectStatusEvent)o; NetworkState arg0 = (NetworkState)ToLua.CheckObject(L, 2, typeof(NetworkState)); obj.m_status = arg0; return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index m_status on a nil value" : e.Message)); } }
static int get_m_status(IntPtr L) { object o = null; try { o = ToLua.ToObject(L, 1); InputNetworkConnectStatusEvent obj = (InputNetworkConnectStatusEvent)o; NetworkState ret = obj.m_status; ToLua.Push(L, ret); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index m_status on a nil value" : e.Message)); } }
static void InitPool() { if (!isInit) { isInit = true; m_connectMsgPool = new InputNetworkConnectStatusEvent[c_connectMsgPool]; for (int i = 0; i < c_connectMsgPool; i++) { m_connectMsgPool[i] = new InputNetworkConnectStatusEvent(); } m_msgPool = new InputNetworkMessageEvent[c_msgPoolSize]; for (int i = 0; i < c_msgPoolSize; i++) { m_msgPool[i] = new InputNetworkMessageEvent(); } } }
private static void OnNetworkConenctStatus(InputNetworkConnectStatusEvent msg) { Debug.Log("OnNetworkConenctStatus :" + msg.m_status); if (msg.m_status == NetworkState.FaildToConnect || msg.m_status == NetworkState.ConnectBreak) { if (!isBreakConenct) { isBreakConenct = true; Debug.LogWarning("OnNetworkConenctStatus :" + msg.m_status + " " + isBreakConenct); startReconenct = true; if (Open && StartReconnect != null) { StartReconnect(); } } else { Debug.LogWarning("OnNetworkConenctStatus :" + msg.m_status + " " + isBreakConenct); } //断线 } else if (msg.m_status == NetworkState.Connected) { isBreakConenct = false; startReconenct = false; if (Open && EndReconnect != null) { EndReconnect(); } //连接成功 } }
static void InitPool() { if (!isInit) { isInit = true; m_connectMsgPool = new InputNetworkConnectStatusEvent[c_connectMsgPool]; for (int i = 0; i < c_connectMsgPool; i++) { m_connectMsgPool[i] = new InputNetworkConnectStatusEvent(); } m_msgPool = new InputNetworkMessageEvent[c_msgPoolSize]; for (int i = 0; i < c_msgPoolSize; i++) { m_msgPool[i] = new InputNetworkMessageEvent(); } } }