// Commands handling
        private void ExecuteCommandStartBuild(string[] tokens, Int64 eventLocalTimeMS)
        {
            int logVersion = int.Parse(tokens[CommandArgumentIndex.START_BUILD_LOG_VERSION]);

            if (logVersion == FASTBuildMonitorControl.LOG_VERSION)
            {
                int targetPID = int.Parse(tokens[CommandArgumentIndex.START_BUILD_PID]);

                // remember our valid targetPID
                _targetPID = targetPID;

                // determine if we are in a live session (target PID is running when we receive a start build command)
                _isLiveSession = IsTargetProcessRunning(_targetPID);

                _systemPerformanceGraphs.OpenSession(_isLiveSession, _targetPID);

                // Record the start time
                _buildStartTimeMS = eventLocalTimeMS;

                _buildRunningState = eBuildRunningState.Running;

                // start the gif "building" animation
                StatusBarRunningGif.StartAnimation();

                ToolTip newToolTip = new ToolTip();
                StatusBarRunningGif.ToolTip = newToolTip;
                newToolTip.Content = "Build in Progress...";
            }
        }
        private void ExecuteCommandStopBuild(string[] tokens, Int64 eventLocalTimeMS)
        {
            Int64 timeStamp = (eventLocalTimeMS - _buildStartTimeMS);

            if (_bPreparingBuildsteps)
            {
                _localHost.OnCompleteEvent(timeStamp, _cPrepareBuildStepsText, BuildEventState.SUCCEEDED_COMPLETED, "");
            }

            // Stop all the active events currently running
            foreach (DictionaryEntry entry in _hosts)
            {
                BuildHost host = entry.Value as BuildHost;
                foreach (CPUCore core in host._cores)
                {
                    core.UnScheduleEvent(timeStamp, _cPrepareBuildStepsText, BuildEventState.TIMEOUT, "", true);
                }
            }

            _bPreparingBuildsteps = false;

            _buildRunningState = eBuildRunningState.Ready;

            StatusBarRunningGif.StopAnimation();
            StatusBarRunningGif.ToolTip = null;

            UpdateBuildProgress(100.0f);


            if (_isLiveSession)
            {
                _systemPerformanceGraphs.CloseSession();

                _isLiveSession = false;
            }
        }
        // Commands handling
        private void ExecuteCommandStartBuild(string[] tokens, Int64 eventLocalTimeMS)
        {
            int targetPID = int.Parse(tokens[CommandArgumentIndex.START_BUILD_PID]);

            // remember our valid targetPID
            _targetPID = targetPID;

            // Record the start time
            _buildStartTimeMS = eventLocalTimeMS;

            _buildRunningState = eBuildRunningState.Running;

            // start the gif "building" animation
            StatusBarRunningGif.StartAnimation();

            ToolTip newToolTip = new ToolTip();
            StatusBarRunningGif.ToolTip = newToolTip;
            newToolTip.Content = "Build in Progress...";
        }