public void Cancel() { Debug.Log("ServerLookupWifiDirect: Cancel() called."); mResult = null; mNextSubCall = Time.time; mEndTime = Time.time + mFuncTimeoutSec; mCancelSubStatus = CancelSubStatus.Unjoining; mAdvertiseServerMaintainTriggered = false; // Tell Update() to do the work. mCancelTriggered = true; }
protected void Cancel_Update() { if (mCancelTriggered) { // Stop trying if timeout. if (Time.time > mEndTime) { if (mIsDebug) { Debug.Log("ServerLookupWifiDirect: CancelAdvertiseServer() timeout."); } mResult = "failure"; mCancelTriggered = false; } else if (Time.time > mNextSubCall) { if (mCancelSubStatus == CancelSubStatus.Unjoining) { if (mIsDebug) { Debug.Log("ServerLookupWifiDirect: Calling CancelJoinNetwork()."); } mWifiP2P.CancelJoinNetwork(); mCancelSubStatus = CancelSubStatus.Unjoined; mNextSubCall = Time.time + mSubCallCoolDown; } else if (mCancelSubStatus == CancelSubStatus.Unjoined) { if (mWifiP2P.GetCancelJoinNetworkStatus() == -1 || mWifiP2P.GetCancelJoinNetworkStatus() == 2) // Nothing to cancel joining. Ok. { // Success. if (mIsDebug) { Debug.Log("ServerLookupWifiDirect: CancelJoinNetwork() success."); } mCancelSubStatus = CancelSubStatus.MemoryRemoving; mNextSubCall = Time.time; } else if (mWifiP2P.GetCancelJoinNetworkStatus() == -2) { // Results not ready. Try again later. mNextSubCall = Time.time + mSubCallCoolDown; } else { // Failure. if (mIsDebug) { Debug.Log("ServerLookupWifiDirect: CancelJoinNetwork() failure."); } mResult = "failure"; mCancelTriggered = false; } } else if (mCancelSubStatus == CancelSubStatus.MemoryRemoving) { if (mIsDebug) { Debug.Log("ServerLookupWifiDirect: Calling RemoveRememberedNetwork()."); } mWifiP2P.RemoveRememberedNetwork(); mCancelSubStatus = CancelSubStatus.Disconnecting; mNextSubCall = Time.time + mSubCallCoolDown; } else if (mCancelSubStatus == CancelSubStatus.Disconnecting) { if (mIsDebug) { Debug.Log("ServerLookupWifiDirect: Calling DisconnectFromNetwork()."); } mWifiP2P.DisconnectFromNetwork(); mCancelSubStatus = CancelSubStatus.Disconnected; mNextSubCall = Time.time + mSubCallCoolDown; } else if (mCancelSubStatus == CancelSubStatus.Disconnected) { if (mWifiP2P.GetDisconnectFromNetworkStatus() == -1 || mWifiP2P.GetDisconnectFromNetworkStatus() == 2) // Nothing to disconnect. Ok. { // Success. if (mIsDebug) { Debug.Log("ServerLookupWifiDirect: DisconnectFromNetwork() success."); } mCancelSubStatus = CancelSubStatus.AdvertiseStopping; mNextSubCall = Time.time; } else if (mWifiP2P.GetDisconnectFromNetworkStatus() == -2) { // Results not ready. Try again later. mNextSubCall = Time.time + mSubCallCoolDown; } else { // Failure. if (mIsDebug) { Debug.Log("ServerLookupWifiDirect: DisconnectFromNetwork() failure."); } mResult = "failure"; mCancelTriggered = false; } } else if (mCancelSubStatus == CancelSubStatus.AdvertiseStopping) { if (mIsDebug) { Debug.Log("ServerLookupWifiDirect: Calling StopAdvertiseNetwork()."); } mWifiP2P.StopAdvertiseNetwork(); mCancelSubStatus = CancelSubStatus.AdvertiseStopped; mNextSubCall = Time.time; } else if (mCancelSubStatus == CancelSubStatus.AdvertiseStopped) { mResult = "success"; mCancelTriggered = false; } } } }