public void Stop()
        {
            if (runnerThread != null && runnerThread.IsAlive)
            {
                if (runnerThread.ThreadState == ThreadState.Suspended)
                {
                    runnerThread.Resume();
                }

                runnerThread.Abort();
            }
            runnerThread = null;

            if (streamReader != null)
            {
                streamReader.Close();
            }

            status = DataProviderStatus.Stopped;

            if (Stopped != null)
            {
                Stopped(this, EventArgs.Empty);
            }
        }
Beispiel #2
0
        void ddeClient_Advise(object sender, DdeAdviseEventArgs e)
        {
            if (isPaused)
            {
                return;
            }

            //item is instrument name
            //text is  2010/07/15 21:27 1.29012 1.29016
            Tick t = new Tick();

            t.Instrument = instrument;
            string[] parts = e.Text.Split(' ');
            t.Time = DateTime.Parse(parts[0] + " " + parts[1]);
            t.Bid  = double.Parse(parts[2]);
            t.Ask  = double.Parse(parts[3]);

            if (ProcessTick != null)
            {
                ProcessTick(t);
            }
            tickLimit--;

            if (tickLimit == 0)
            {
                ddeClient.StopAdvise(instrument.ToString(), 1000);
                status = DataProviderStatus.Stopped;
            }
        }
 public void Pause()
 {
     if (runnerThread != null && runnerThread.IsAlive)
     {
         runnerThread.Suspend();
         status = DataProviderStatus.Paused;
     }
 }
        internal void UpdateDataLoadingStatus(DataProviderStatus status)
        {
            this.dataStatus = status;

            foreach (var listener in this.registeredDataLoadingListeners)
            {
                listener.OnDataStatusChanged(status);
            }
        }
        public void OnDataStatusChanged(DataProviderStatus status)
        {
            if (this.busyControl != null && this.Owner.IsBusyIndicatorEnabled)
            {
                var isBusy = status != DataProviderStatus.Ready && status != DataProviderStatus.RequestingData && status != DataProviderStatus.Faulted;

                if (this.busyControl.IsBusy != isBusy)
                {
                    this.busyControl.IsBusy = isBusy;
                }
            }

            this.currentStatus = status;
        }
        public void Process(int ticks)
        {
            ThreadTickLimit = ticks;

            status = DataProviderStatus.Running;
            if (runnerThread != null && runnerThread.IsAlive)
            {
                runnerThread.Resume();
                return;
            }

            runnerThread = new Thread(new ThreadStart(tickThread));
            runnerThread.Start();
        }
Beispiel #7
0
        public void Stop()
        {
            if (ddeClient != null && ddeClient.IsConnected)
            {
                ddeClient.Disconnect();
            }

            if (Stopped != null)
            {
                Stopped(this, EventArgs.Empty);
            }

            status = DataProviderStatus.Stopped;
        }
Beispiel #8
0
        public void Process(int ticks)
        {
            tickLimit = ticks;
            status    = DataProviderStatus.Running;

            if (isPaused)
            {
                isPaused = false;
            }
            else
            {
                ddeClient.StartAdvise(instrument.ToString(), 1, true, 6000);
            }
        }
Beispiel #9
0
        internal static DataProviderStatus GetDataProviderStatusFromEngineStatus(DataEngineStatus engineStatus)
        {
            DataProviderStatus status;

            switch (engineStatus)
            {
            case DataEngineStatus.InProgress:
                status = DataProviderStatus.ProcessingData;
                break;

            case DataEngineStatus.Completed:
                status = DataProviderStatus.Ready;
                break;

            case DataEngineStatus.Faulted:
            default:
                status = DataProviderStatus.Faulted;
                break;
            }

            return(status);
        }
        public void OnDataStatusChanged(DataProviderStatus status)
        {
            if (this.busyControl != null && this.Owner.IsBusyIndicatorEnabled)
            {
                var isBusy = status != DataProviderStatus.Ready && status != DataProviderStatus.RequestingData && status != DataProviderStatus.Faulted;

                if (this.BusyControl.IsBusy != isBusy)
                {
                    this.BusyControl.IsBusy = isBusy;

                    if (isBusy)
                    {
                        this.Owner.HitTestService.Suspend();
                    }
                    else
                    {
                        this.Owner.HitTestService.Resume();
                    }
                }
            }

            this.currentStatus = status;
        }
 void IDataStatusListener.OnDataStatusChanged(DataProviderStatus status)
 {
     this.IsLoadingData = status == DataProviderStatus.RequestingData;
 }
Beispiel #12
0
 void IGridView.OnDataStatusChanged(DataProviderStatus status)
 {
     this.visualStateService.UpdateDataLoadingStatus(status);
 }
Beispiel #13
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DataProviderStatusChangedEventArgs" /> class.
 /// </summary>
 /// <param name="newStatus">The new status.</param>
 /// <param name="resultsChanges">DataProvider results have changed if set to <c>true</c>.</param>
 /// <param name="error">Exception if available .</param>
 public DataProviderStatusChangedEventArgs(DataProviderStatus newStatus, bool resultsChanges, Exception error)
 {
     this.NewStatus      = newStatus;
     this.ResultsChanged = resultsChanges;
     this.Error          = error;
 }
Beispiel #14
0
 private void NotifyView(DataProviderStatus status)
 {
     this.View.UpdateService.DispatchOnUIThread(false, () => this.View.OnDataStatusChanged(status));
 }
Beispiel #15
0
 public void Pause()
 {
     isPaused = true;
     status   = DataProviderStatus.Paused;
 }
Beispiel #16
0
 public EMGDataProviderStatusEventArgs(DataProviderStatus statusValue)
     : base()
 {
     status = statusValue;
 }