示例#1
0
        // ----------------------------------------

        public static void LogBasicMessage(string message)
        {
            BasicMessages.Add(new MessageTypes.Message(message));
            ClearOldMessages();
            SaveMessagesToFiles();
            UpdateGUI();
        }
示例#2
0
        // ----------------------------------------

        public static void LogError(string message)
        {
            ErrorMessages.Add(new MessageTypes.ErrorMessage(message));
            ClearOldErrorMessages();
            SaveMessagesToFiles();
            UpdateGUI();
        }
示例#3
0
            public static void AddTickerData(TickerChangedEventArgs ticker, bool ignoreTimeFilter = false)
            {
                if (!AllowTickerUpdate)
                {
                    return;
                }

                if (allowUpdatePairs == null)
                {
                    return;
                }
                if (!allowUpdatePairs.Contains(ticker.CurrencyPair))
                {
                    return;
                }

                int storeTime;

                lock (TickerStoreTime) {
                    if (!TickerStoreTime.TryGetValue(ticker.CurrencyPair, out storeTime))
                    {
                        storeTime = TickerStoreTimeDefault;
                    }
                }
                long deleteTime = ticker.Timestamp - storeTime;

                lock (tickerData) {
                    for (int i = 0; i < tickerData.Count; i++)
                    {
                        if (tickerData[i] == null)
                        {
                            continue;
                        }
                        if (tickerData[i].Count == 0)
                        {
                            continue;
                        }
                        if (tickerData[i][0].CurrencyPair == ticker.CurrencyPair)
                        {
                            while (tickerData[i][0].Timestamp < deleteTime)
                            {
                                tickerData[i].First().Dispose();
                                tickerData[i].RemoveAt(0);
                            }
                            if (!ignoreTimeFilter && ticker.Timestamp - tickerData[i].Last().Timestamp < 5)
                            {
                                return;
                            }
                            tickerData[i].Add(ticker);
                            Trading.Manager.NotifyTickerUpdate(ticker.CurrencyPair);
                            return;
                        }
                    }
                    TSList <TickerChangedEventArgs> list = new TSList <TickerChangedEventArgs>();
                    list.Add(ticker);
                    tickerData.Add(list);
                    Trading.Manager.NotifyTickerUpdate(ticker.CurrencyPair);
                }
            }
示例#4
0
        /// <summary>
        /// Handles when a Character is added to the Map. This is an extension of EntityAdded that handles
        /// special stuff just for Characters.
        /// </summary>
        /// <param name="character">The Character that was added to the map.</param>
        /// <exception cref="TypeException">Unknown Character type - not a NPC or User...?</exception>
        void CharacterAdded(Character character)
        {
            // If the character was already on a map, so remove them from the old map
            if (character.Map != null && character.Map != this)
            {
                const string errmsg = "Character `{0}` [{1}] added to new map, but is already on a map!";
                if (log.IsWarnEnabled)
                {
                    log.WarnFormat(errmsg, character, character.MapEntityIndex);
                }
                Debug.Fail(string.Format(errmsg, character, character.MapEntityIndex));
                character.Map.RemoveEntity(character);
            }

            // Syncronise paperdoll layers to all users on the same map
            foreach (User userOnMap in character.Map.Users)
            {
                if (userOnMap != null)
                {
                    character.SynchronizePaperdollTo(userOnMap);
                }
            }

            // Added character is a User
            var user = character as User;

            if (user != null)
            {
                EventCounterManager.Map.Increment(ID, MapEventCounterType.UserAdded);

                Debug.Assert(!Users.Contains(user), string.Format("Users list already contains `{0}`!", user));
                _users.Add(user);
                SendMapData(user);
                return;
            }

            // Added character is a NPC
            var npc = character as NPC;

            if (npc != null)
            {
                EventCounterManager.Map.Increment(ID, MapEventCounterType.NPCAdded);

                Debug.Assert(!NPCs.Contains(npc), string.Format("NPCs list already contains `{0}`!", npc));
                _npcs.Add(npc);
                return;
            }

            // Unknown added character type - not actually an error, but it is likely an oversight
            throw new TypeException("Unknown Character type - not a NPC or User...?");
        }
示例#5
0
        public void ThreadSafeAddTest()
        {
            var l = new TSList<int>(Enumerable.Range(1, _testRange));

            for (var i = 0; i < 10; i++)
            {
                var t = new Thread(DummyEnumerator);
                t.Start(l);
            }

            for (var i = 0; i < 10; i++)
            {
                l.Add(i);
            }
        }
示例#6
0
        public void ThreadSafeAddTest()
        {
            var l = new TSList <int>(Enumerable.Range(1, _testRange));

            for (var i = 0; i < 10; i++)
            {
                var t = new Thread(DummyEnumerator);
                t.Start(l);
            }

            for (var i = 0; i < 10; i++)
            {
                l.Add(i);
            }
        }
示例#7
0
        public virtual bool Insert()
        {
            if (!Loaded)
            {
                Load();
            }
            bool result = Provider.InsertObject <T>((T)this);

            if (result)
            {
                database.Add((T)this);
            }

            UnifiedSystem.HandleObjectCreation <T>(this);

            return(result);
        }
示例#8
0
 public void InvokeThread(InvokeMethod method, params object[] parameters)
 {
     invokeQueue.Add(new InvokePair(method, parameters));
 }
示例#9
0
 public void AddFRow(KeyValuePair <T, T>[] pairs, MeasureValuesCollection <T> data)
 {
     _innerList.Add(new FactsRow <T>(_innerList.Count, _hasher.HashTuples(pairs), pairs, data));
 }