Esempio n. 1
0
 internal void Delete(ref DeferredEventList deferredEventList)
 {
     // we cannot fire an event here because this method is called while the LineManager adjusts the
     // lineCollection, so an event handler could see inconsistent state
     lineSegment = null;
     deferredEventList.AddDeletedAnchor(this);
 }
 /// <summary>
 /// Removes expired events
 /// </summary>
 public void DoExpirations()
 {
     while (_sortedEvents.Count > 0)
     {
         DeferredEventList list = _sortedEvents.FindMin();
         if (Util.Clock.GetLongTickCount() >= list.ExpiresOn)
         {
             Delete(list);
         }
         else
         {
             break;
         }
     }
 }
        internal void AddGroupCrossedAvatarsReadyEvent(Tuple <UUID, UUID> scriptIdUserId)
        {
            DeferredEventList eventList;

            if (_eventsByScript.TryGetValue(scriptIdUserId.Item1, out eventList))
            {
                eventList.GroupCrossedAvatarsReadyList.Add(scriptIdUserId.Item2);
            }
            else
            {
                eventList = new DeferredEventList(scriptIdUserId.Item1);
                eventList.GroupCrossedAvatarsReadyList.Add(scriptIdUserId.Item2);
                _eventsByScript.Add(scriptIdUserId.Item1, eventList);

                C5.IPriorityQueueHandle <DeferredEventList> handle = null;
                _sortedEvents.Add(ref handle, eventList);
                eventList.Handle = handle;
            }
        }
        internal void AddEnableDisableEvent(UUID itemId, EnableDisableFlag enableDisableFlag)
        {
            DeferredEventList eventList;

            if (_eventsByScript.TryGetValue(itemId, out eventList))
            {
                eventList.EnableDisableList.Add(enableDisableFlag);
            }
            else
            {
                eventList = new DeferredEventList(itemId);
                eventList.EnableDisableList.Add(enableDisableFlag);
                _eventsByScript.Add(itemId, eventList);

                C5.IPriorityQueueHandle <DeferredEventList> handle = null;
                _sortedEvents.Add(ref handle, eventList);
                eventList.Handle = handle;
            }
        }
        /// <summary>
        /// Add a new deferred event
        /// </summary>
        /// <param name="itemId"></param>
        /// <param name="eventInfo"></param>
        public void AddEvent(UUID itemId, VM.PostedEvent eventInfo)
        {
            DeferredEventList eventList;

            if (_eventsByScript.TryGetValue(itemId, out eventList))
            {
                if (eventList.EvtList.Count < MAX_DEFERRED_EVENTS)
                {
                    eventList.EvtList.Add(eventInfo);
                }
            }
            else
            {
                eventList = new DeferredEventList(itemId);
                eventList.EvtList.Add(eventInfo);
                _eventsByScript.Add(itemId, eventList);

                C5.IPriorityQueueHandle <DeferredEventList> handle = null;
                _sortedEvents.Add(ref handle, eventList);
                eventList.Handle = handle;
            }
        }
 private void Delete(DeferredEventList eventList)
 {
     _sortedEvents.Delete(eventList.Handle);
     _eventsByScript.Remove(eventList.ItemId);
 }