Performed to determine when an entry can be shifted off from the second list.
Performed to determine when an entry can be shifted off from the second list. Override.
the entry
The specific action that is necessary to complete the removal process.
The specific action that is necessary to complete the removal process. Override.
the entry
GUIDTask
Performed when the entry is shifted from the first list to the second list.
Performed when the entry is shifted from the first list to the second list. Override.
the entry
Default time for entries waiting in the first list.
Default time for entries waiting in the first list. Override.
the time as a FiniteDuration
object (to be later transformed into nanoseconds)
Determine whether or not the resulting entry is valid for this process.
Determine whether or not the resulting entry is valid for this process. The primary purpose of this function should be to determine if the appropriate type of object is being submitted. Override.
the entry
true
, if it can be processed; false
, otherwise
Performed when the entry is initially added to the first list.
Performed when the entry is initially added to the first list. Override.
the entry
Default time for entries waiting in the second list.
Default time for entries waiting in the second list. Override.
the time as a FiniteDuration
object (to be later transformed into nanoseconds)
No entries in the first pool.
No entries in the first pool.
Remove specific entries from the first pool.
Remove specific entries from the first pool.
Expedite all entries from the first pool into the second.
Expedite all entries from the first pool into the second.
Expedite some entries from the first pool into the second.
Expedite some entries from the first pool into the second.
a list of objects to pick
the zone in which these objects must be discovered; all targets must be in this zone, with the assumption that this is the zone where they were registered
Common function to reset the first task's delayed execution.
Common function to reset the first task's delayed execution. Cancels the scheduled timer and will only restart the timer if there is at least one entry in the first pool.
the time (in nanoseconds); defaults to the current time (in nanoseconds)
The first pool of objects waiting to be processed for removal.
The timer that checks whether entries in the first pool are still eligible for that pool.
Sufficiently clean up the current contents of these waiting removal jobs.
Sufficiently clean up the current contents of these waiting removal jobs.
Cancel all timers, rush all entries in the lists through their individual steps, then empty the lists.
This is an improved HurryAll
, but still faster since it also railroads entries through the second queue as well.
Send the initial message that requests a task resolver for assisting in the removal process.
Send the initial message that requests a task resolver for assisting in the removal process.
The second pool of objects waiting to be processed for removal.
The timer that checks whether entries in the second pool are still eligible for that pool.
The base class for a type of "destruction
Actor
" intended to be used for delaying object cleanup activity. Objects submitted to this process should be registered to a global unique identified system for a given region as is specified in their submission.Two waiting lists are used to pool the objects being removed. The first list is a basic pooling list that precludes any proper removal actions and is almost expressly for delaying the process. Previously-submitted tasks can be removed from this list so long as a matching object can be found. Tasks in this list can also be expedited into the second list without having to consider delays. After being migrated to the secondary list, the object is considered beyond the point of no return. Followup activity will lead to its inevitable unregistering and removal.
Functions have been provided for
override
in order to interject the appropriate cleanup operations. The activity itself is typically removing the object in question from a certain list, dismissing it with a mass distribution ofObjectDeleteMessage
packets, and finally unregistering it. Some types of object have (de-)implementation variations which should be made explicit through the overrides.