コード例 #1
0
        /// <inheritdoc />
        public override void OnNext(long value)
        {
            while (_orderCache.TryDequeue(out var cachedOrder))
            {
                UpdateObservers(cachedOrder);
            }

            foreach (var order in WatchList.Values.ToList())
            {
                var candle = _dataProvider.ParentImplementation.GetCandles(order.Pair, 1)[0];

                if (EvaluateFilledOrder(order, candle, Timer.CurrentTime.ToUnixTimeMilliseconds()))
                {
                    Logger.LogInformation($"Order {order.OrderId} confirmed at {Timer.CurrentTime}");

                    // Write the filled trade to the logger
                    LogOrder(order);

                    UpdateObservers(order);
                }
            }

            // Clean up filled orders
            WatchList = WatchList
                        .Where(keyPair => !keyPair.Value.Finalized)
                        .ToDictionary(p => p.Key, p => p.Value);
        }
コード例 #2
0
ファイル: RamWatch.cs プロジェクト: lenalia/BizHawk
        private void UpdateStatusBar(bool saved = false)
        {
            var message = string.Empty;

            if (!string.IsNullOrWhiteSpace(_watches.CurrentFileName))
            {
                if (saved)
                {
                    message = Path.GetFileName(_watches.CurrentFileName) + " saved.";
                }
                else
                {
                    message = Path.GetFileName(_watches.CurrentFileName) + (_watches.Changes ? " *" : string.Empty);
                }
            }

            ErrorIconButton.Visible = _watches.Where(watch => !watch.IsSeparator).Any(watch => (watch.Address) >= watch.Domain.Size);

            MessageLabel.Text = message;
        }
コード例 #3
0
ファイル: RAMWatch.cs プロジェクト: ProCNR/Trainer_dll.old
        public RAMValue GetRAMValue(string key)
        {
            switch (_watchMode)
            {
            case WatchMode.SingleThreaded:
                return(WatchList.Where(p => p.Key == key).SingleOrDefault());

            case WatchMode.MultiThreaded_A:
                List <RAMValue> tmpList = ReadWatchList.Union(WriteWatchList).Union(FreezeWatchList).ToList();
                return(tmpList.Where(p => p.Key == key).SingleOrDefault());

            case WatchMode.MultiThreaded_N:
                return(null);

            case WatchMode.MultiThreaded_S:
                return(null);
            }
            return(null);
        }
コード例 #4
0
ファイル: RamWatch.cs プロジェクト: jokm1/BizHawk
        private void UpdateStatusBar(bool saved = false)
        {
            var message = "";

            if (!string.IsNullOrWhiteSpace(_watches.CurrentFileName))
            {
                if (saved)
                {
                    message = $"{Path.GetFileName(_watches.CurrentFileName)} saved.";
                }
                else
                {
                    message = Path.GetFileName(_watches.CurrentFileName) + (_watches.Changes ? " *" : "");
                }
            }

            ErrorIconButton.Visible = _watches.Where(watch => !watch.IsSeparator).Any(watch => !watch.IsValid);

            MessageLabel.Text = message;
        }
コード例 #5
0
		private void LoadWatchFile(FileInfo file, bool append, bool truncate = false)
		{
			if (file != null)
			{
				if (!truncate)
				{
					_currentFileName = file.FullName;
				}

				var watches = new WatchList(MemoryDomains, Emu.SystemId);
				watches.Load(file.FullName, append);
				Settings.RecentSearches.Add(watches.CurrentFileName);

				var watchList = watches.Where(x => !x.IsSeparator).ToList();
				var addresses = watchList.Select(x => x.Address).ToList();

				if (truncate)
				{
					SetRemovedMessage(addresses.Count);
					_searches.RemoveSmallWatchRange(watchList);
				}
				else
				{
					_searches.AddRange(addresses, append);
					MessageLabel.Text = $"{file.Name} loaded";
				}

				UpdateList();
				Settings.RecentSearches.Add(file.FullName);

				if (!append && !truncate)
				{
					_searches.ClearHistory();
				}

				ToggleSearchDependentToolBarItems();
			}
		}
コード例 #6
0
ファイル: RamSearch.cs プロジェクト: ddugovic/RASuite
		public void LoadWatchFile(FileInfo file, bool append, bool truncate = false)
		{
			if (file != null)
			{
				if (!truncate)
				{
					_currentFileName = file.FullName;
				}

				var watches = new WatchList(_settings.Domain);
				watches.Load(file.FullName, append);

				var watchList = watches.Where(x => !x.IsSeparator);
				var addresses = watchList.Select(x => x.Address ?? 0).ToList();

				if (truncate)
				{
					SetRemovedMessage(addresses.Count);
					_searches.RemoveSmallWatchRange(watchList);
				}
				else
				{
					_searches.AddRange(addresses, append);
					MessageLabel.Text = file.Name + " loaded";
				}

				UpdateList();
				Global.Config.RecentSearches.Add(file.FullName);

				if (!append && !truncate)
				{
					_searches.ClearHistory();
				}

				ToggleSearchDependentToolBarItems();
			}
		}
コード例 #7
0
ファイル: RAMWatch.cs プロジェクト: ProCNR/Trainer_dll.old
 /// <summary>
 /// Get RAM Value Type using address
 /// </summary>
 /// <param name="address"></param>
 /// <returns></returns>
 public RAMValue GetRAMValue(UIntPtr address) => WatchList.Where(p => p.Address == address).ToList().FirstOrDefault();