protected void SetFlag(PipeReaderState p_flag, bool p_value) { if (p_value) { State = m_state | p_flag; } else { State = m_state & ~p_flag; } }
public void UpdateStatus() { if (InvokeRequired) { BeginInvoke(new Action(UpdateStatus)); return; } var currentReaderState = m_pipeReader.State; var clearedFlags = m_previousPipeReaderState & ~currentReaderState; var newFlags = currentReaderState & ~m_previousPipeReaderState; /* * * Debug.Print(Environment.NewLine); * Debug.Print("====================================================================="); * Debug.Print("Invoked state: {0}", currentReaderState); * * if (newFlags != PipeReaderState.None) * Debug.Print("New flags: {0}", newFlags); * if (clearedFlags != PipeReaderState.None) * Debug.Print("Cleared flags: {0}", clearedFlags); * */ if (clearedFlags == PipeReaderState.ConnectionAccepted) { m_pipeReader.EnabledWritingFile = chkStartWritingImmediately.Checked; } m_flushFileTimer.Enabled = m_pipeReader.IsFileOpened; if (currentReaderState != PipeReaderState.None && (false == m_previousStateIsError)) { lblEroor.Visible = lblErrorInfo.Visible = m_pipeReader.IsError; lblErrorInfo.Text = m_pipeReader.IsError ? m_pipeReader.LastException.Message : string.Empty; } m_previousStateIsError = m_pipeReader.IsError; if (m_pipeReader.IsConnectionAccepted) { if (m_pipeReader.EnabledWritingFile) { if (chkStopOnTimer.Checked) { var timePickerValue = timePicker.Value; var hours = timePickerValue.Hour; var minutes = timePickerValue.Minute; var seconds = timePickerValue.Second; m_remainedTimeSpan = new TimeSpan(hours, minutes, seconds); m_stopWritingTimer.Interval = m_remainedTimeSpan.TotalMilliseconds; m_stopWritingTimer.Start(); chkStopOnTimer.Enabled = false; timePicker.Enabled = false; lblRemained.Visible = true; lblRemained.Text = "remainded: " + m_remainedTimeSpan.ToString("c"); } } } if ((false == chkStopOnTimer.Enabled) && (false == m_pipeReader.IsFileOpened)) { chkStopOnTimer.Enabled = true; timePicker.Enabled = true; lblRemained.Visible = false; } lblConnected.Visible = lblConnectionInfo.Visible = m_pipeReader.IsPipeCreated; if (m_pipeReader.IsPipeCreated) { if (false == m_pipeReader.IsConnectionAccepted) { lblConnected.Text = "Accepting connections\n\rto pipe:"; lblConnectionInfo.Text = m_pipeReader.PipeFullName; } else { lblConnected.Text = "Connected"; lblConnectionInfo.Text = m_pipeReader.PipeFullName + " <-- " + m_pipeReader.ProcessName + " (pID:" + m_pipeReader.ClientProcessId + ")"; } } lblFIleName.Visible = lblWritingFile.Visible = m_pipeReader.IsFileOpened; if (m_pipeReader.IsFileOpened) { lblFIleName.Text = m_pipeReader.OpenedFileName; if (false == m_pipeReader.EnabledWritingFile) { lblWritingFile.Text = "Opened file:"; lblWritingFile.ForeColor = Color.LimeGreen; } else { lblWritingFile.Text = "Writing file:"; lblWritingFile.ForeColor = Color.OrangeRed; } } chkFrapsFormat.Enabled = txtFolder.Enabled = btnSelectFolder.Enabled = (false == m_pipeReader.IsFileOpened); btnStopStart.Enabled = true; txtPipeName.Enabled = (false == m_pipeReader.IsStarted); if (m_pipeReader.IsStarted) { if (m_pipeReader.IsConnectionAccepted) { btnStopStart.Text = "Close connection"; } else if (m_pipeReader.IsPipeCreated) { btnStopStart.Text = "Stop listening"; } else { //Debugger.Break(); btnStopStart.Text = "..."; } } else { btnStopStart.Text = "Start listening"; } m_previousPipeReaderState = currentReaderState; }
public bool ReadFlag(PipeReaderState p_flag) { return((m_state & p_flag) != 0); }