abstract class RemoverActor extends SupportActor[Entry]
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 of ObjectDeleteMessage
packets,
and finally unregistering it.
Some types of object have (de-)implementation variations which should be made explicit through the overrides.
- Source
- RemoverActor.scala
- Alphabetic
- By Inheritance
- RemoverActor
- SupportActor
- Actor
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new RemoverActor()
Type Members
- type Receive = PartialFunction[Any, Unit]
- Definition Classes
- Actor
Abstract Value Members
- abstract def ClearanceTest(entry: Entry): Boolean
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.
- entry
the entry
- abstract def DeletionTask(entry: Entry): TaskBundle
The specific action that is necessary to complete the removal process.
The specific action that is necessary to complete the removal process. Override.
- entry
the entry
- See also
GUIDTask
- abstract def FirstJob(entry: Entry): Unit
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.
- entry
the entry
- abstract def FirstStandardDuration: FiniteDuration
Default time for entries waiting in the first list.
Default time for entries waiting in the first list. Override.
- returns
the time as a
FiniteDuration
object (to be later transformed into nanoseconds)
- abstract def InclusionTest(entry: Entry): Boolean
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.
- entry
the entry
- returns
true
, if it can be processed;false
, otherwise
- Definition Classes
- SupportActor
- abstract def InitialJob(entry: Entry): Unit
Performed when the entry is initially added to the first list.
Performed when the entry is initially added to the first list. Override.
- entry
the entry
- abstract def SecondStandardDuration: FiniteDuration
Default time for entries waiting in the second list.
Default time for entries waiting in the second list. Override.
- returns
the time as a
FiniteDuration
object (to be later transformed into nanoseconds)
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def ClearAll(): Unit
No entries in the first pool.
No entries in the first pool.
- Definition Classes
- RemoverActor → SupportActor
- def ClearSpecific(targets: List[PlanetSideGameObject], zone: Zone): Unit
Remove specific entries from the first pool.
Remove specific entries from the first pool.
- Definition Classes
- RemoverActor → SupportActor
- def FinalTask(entry: Entry): TaskBundle
- def HurryAll(): Unit
Expedite all entries from the first pool into the second.
Expedite all entries from the first pool into the second.
- Definition Classes
- RemoverActor → SupportActor
- def HurrySpecific(targets: List[PlanetSideGameObject], zone: Zone): Unit
Expedite some entries from the first pool into the second.
Expedite some entries from the first pool into the second.
- targets
a list of objects to pick
- zone
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
- Definition Classes
- RemoverActor → SupportActor
- def PartitionTargetsFromList(list: List[Entry], targets: List[Entry], zone: Zone, comparator: SimilarityComparator[Entry] = sameEntryComparator): (List[Entry], List[Entry])
- Definition Classes
- SupportActor
- def RetimeFirstTask(now: Long = System.nanoTime): Unit
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.
- now
the time (in nanoseconds); defaults to the current time (in nanoseconds)
- def SecondJob(entry: Entry): Unit
- def aroundPostRestart(reason: Throwable): Unit
- Attributes
- protected[akka]
- Definition Classes
- Actor
- Annotations
- @InternalApi()
- def aroundPostStop(): Unit
- Attributes
- protected[akka]
- Definition Classes
- Actor
- Annotations
- @InternalApi()
- def aroundPreRestart(reason: Throwable, message: Option[Any]): Unit
- Attributes
- protected[akka]
- Definition Classes
- Actor
- Annotations
- @InternalApi()
- def aroundPreStart(): Unit
- Attributes
- protected[akka]
- Definition Classes
- Actor
- Annotations
- @InternalApi()
- def aroundReceive(receive: akka.actor.Actor.Receive, msg: Any): Unit
- Attributes
- protected[akka]
- Definition Classes
- Actor
- Annotations
- @InternalApi()
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- implicit val context: ActorContext
- Definition Classes
- Actor
- def debug(msg: String): Unit
- Definition Classes
- SupportActor
- def entryManagementBehaviors: Receive
- Definition Classes
- SupportActor
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- var firstHeap: List[Entry]
The first pool of objects waiting to be processed for removal.
- var firstTask: Cancellable
The timer that checks whether entries in the first pool are still eligible for that pool.
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def info(msg: String): Unit
- Definition Classes
- SupportActor
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def postRestart(reason: Throwable): Unit
- Definition Classes
- Actor
- Annotations
- @throws(classOf[java.lang.Exception])
- def postStop(): Unit
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.- Definition Classes
- RemoverActor → Actor
- def preRestart(reason: Throwable, message: Option[Any]): Unit
- Definition Classes
- Actor
- Annotations
- @throws(classOf[java.lang.Exception])
- def preStart(): Unit
- Definition Classes
- Actor
- Annotations
- @throws(classOf[java.lang.Exception])
- def receive: Receive
- Definition Classes
- RemoverActor → Actor
- val sameEntryComparator: SimilarityComparator[Entry]
- Definition Classes
- RemoverActor → SupportActor
- var secondHeap: List[Entry]
The second pool of objects waiting to be processed for removal.
- var secondTask: Cancellable
The timer that checks whether entries in the second pool are still eligible for that pool.
- implicit final val self: ActorRef
- Definition Classes
- Actor
- final def sender(): ActorRef
- Definition Classes
- Actor
- def supervisorStrategy: SupervisorStrategy
- Definition Classes
- Actor
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def trace(msg: String): Unit
- Definition Classes
- SupportActor
- def unhandled(message: Any): Unit
- Definition Classes
- Actor
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()