private void button1_Click(object sender, EventArgs e) { string sessionId = textBoxCookieId.Text.Trim(); string authorizationString = textBoxAuthorization.Text.Trim(); ConnectionInfo currentConnectionInfo = comboBoxServer.SelectedItem as ConnectionInfo; SessionCache sessionCache = new SessionCache(); ConnectionSession connectionSession = sessionCache[currentConnectionInfo]; DataBus dataBus = connectionSession.GetDataBus(sessionId, authorizationString); DebugAction debugAction = new DebugAction(dataBus); debugAction.CommandLine = textBoxDebug.Text.Trim(); HttpResponseMessage response = debugAction.DoAction(); Execute excuteObject = debugAction.ResponseData as Execute; ActionUtil.StoreMessages(excuteObject.ClientRequestEntity); debugEntity.AddTrace(excuteObject); if (excuteObject.ClientRequestEntity == null) { try { SyncBackData(response.CopiedStream, response.ChunkIndexes[1]); //semaphoreEmpty.Release(); if (dataSyncThread.ThreadState == ThreadState.Suspended) { dataSyncThread.Resume(); } } catch { } return; } else if (!excuteObject.ClientRequestEntity.Messages.Rearm) { return; } else { //return; } while (true) { DebugResponseAction debugResponse = new DebugResponseAction(dataBus); response = debugResponse.DoAction(); excuteObject = debugResponse.ResponseData as Execute; ActionUtil.StoreMessages(excuteObject.ClientRequestEntity); debugEntity.AddTrace(excuteObject); if (excuteObject.ClientRequestEntity == null) { SyncBackData(response.CopiedStream, response.ChunkIndexes[1]); //semaphoreEmpty.Release(); if (dataSyncThread.ThreadState == ThreadState.Suspended) { dataSyncThread.Resume(); } break; } else if (excuteObject.ClientRequestEntity.Messages.Rearm == false) { //semaphoreEmpty.Release(); //if (dataSyncThread.ThreadState == ThreadState.Suspended) //{ // dataSyncThread.Resume(); //} //break; } else { //Nothing to do. } } }
private void SendDebugCommand(object debugCommandObj) { string debugCommand = debugCommandObj.ToString(); using (DataBus dataBus = GetDataBus()) { DebugAction debugAction = new DebugAction(dataBus); debugAction.CommandLine = debugCommand; HttpResponseMessage response = debugAction.DoAction(); Execute excuteObject = debugAction.ResponseData as Execute; ActionUtil.StoreMessages(excuteObject.ClientRequestEntity); if (excuteObject.ClientRequestEntity == null) { try { needHoldSMClient = false; //SyncBackData(response.CopiedStream, response.ChunkIndexes[1]); SyncBackChunckedData(response.CopiedStream, response.ChunkIndexes); if (dataSyncThread.ThreadState == System.Threading.ThreadState.Suspended) { dataSyncThread.Resume(); } } catch { //Nothing to do } return; } else if (!excuteObject.ClientRequestEntity.Messages.Rearm) { debugEntity.AddTrace(excuteObject); return; } else if (excuteObject.ClientRequestEntity.Name != "message") { while (true) { DebugResponseAction debugResponse = new DebugResponseAction(dataBus); response = debugResponse.DoAction(); excuteObject = debugResponse.ResponseData as Execute; ActionUtil.StoreMessages(excuteObject.ClientRequestEntity); if (excuteObject.ClientRequestEntity == null) { needHoldSMClient = false; //SyncBackData(response.CopiedStream, response.ChunkIndexes[1]); SyncBackChunckedData(response.CopiedStream, response.ChunkIndexes); //semaphoreEmpty.Release(); if (dataSyncThread.ThreadState == System.Threading.ThreadState.Suspended) { dataSyncThread.Resume(); } break; } else if (excuteObject.ClientRequestEntity.Messages.Rearm == false) { //semaphoreEmpty.Release(); //if (dataSyncThread.ThreadState == ThreadState.Suspended) //{ // dataSyncThread.Resume(); //} //break; } else { //Nothing to do. } debugEntity.AddTrace(excuteObject); } } else { //Nothing to do. } } }