# PSF-LoginServer - master - net.psforever.services.RemoverActor
PSF - LoginServer - master - net.psforever.services.RemoverActor
Keywords: PSF LoginServer master net.psforever.services.RemoverActor

PSF-LoginServer - master < Back


# Packages

-  package root
  Definition Classes
    root
-  package net
  Definition Classes
    root
-  package psforever
  Definition Classes
    net
-  package services
  Definition Classes
    psforever
-  package account
  Definition Classes
    services
-  package avatar
  Definition Classes
    services
-  package chat
  Definition Classes
    services
-  package galaxy
  Definition Classes
    services
-  package hart
  Definition Classes
    services
-  package local
  Definition Classes
    services
-  package properties
  Definition Classes
    services
-  package support
  Definition Classes
    services
-  package teamwork
  Definition Classes
    services
-  package vehicle
  Definition Classes
    services
- GenericEventBus
- GenericEventBusMsg
- InterstellarClusterService
- RemoverActor
- Service
- ServiceManager

c

net.psforever.services

# RemoverActor 

###
Companion object RemoverActor

#### 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

Linear Supertypes
SupportActor[Entry], Actor, AnyRef, Any
Known Subclasses
CorpseRemovalActor, DroppedItemRemover

Ordering

1. Alphabetic
2. By Inheritance

Inherited

1. RemoverActor
2. SupportActor
3. Actor
4. AnyRef
5. Any

1. Hide All
2. Show All

Visibility

1. Public
2. Protected

### Instance Constructors

1.  new RemoverActor(taskResolver: ActorRef)

### Type Members

1.  type Receive = PartialFunction[Any, Unit]
   Definition Classes
     Actor

### Abstract Value Members

1.  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

2.  abstract def DeletionTask(entry: Entry): GiveTask

   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`

3.  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

4.  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)

5.  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
6.  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

7.  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

1.  final def !=(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
2.  final def ##: Int
   Definition Classes
     AnyRef → Any
3.  final def ==(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
4.  def ClearAll(): Unit

   No entries in the first pool.

   No entries in the first pool.

   Definition Classes
     RemoverActor → SupportActor
5.  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
6.  def FinalTask(entry: Entry): GiveTask
7.  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
8.  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
9.  def PartitionTargetsFromList(list: List[Entry], targets: List[Entry], zone: Zone, comparator: SimilarityComparator[Entry] = sameEntryComparator): (List[Entry], List[Entry])
   Definition Classes
     SupportActor
10.  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)

11.  def SecondJob(entry: Entry): Unit
12.  def aroundPostRestart(reason: Throwable): Unit
    Attributes
      protected[akka]
    Definition Classes
      Actor
    Annotations
      @InternalApi()
13.  def aroundPostStop(): Unit
    Attributes
      protected[akka]
    Definition Classes
      Actor
    Annotations
      @InternalApi()
14.  def aroundPreRestart(reason: Throwable, message: Option[Any]): Unit
    Attributes
      protected[akka]
    Definition Classes
      Actor
    Annotations
      @InternalApi()
15.  def aroundPreStart(): Unit
    Attributes
      protected[akka]
    Definition Classes
      Actor
    Annotations
      @InternalApi()
16.  def aroundReceive(receive: akka.actor.Actor.Receive, msg: Any): Unit
    Attributes
      protected[akka]
    Definition Classes
      Actor
    Annotations
      @InternalApi()
17.  final def asInstanceOf[T0]: T0
    Definition Classes
      Any
18.  def clone(): AnyRef
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.CloneNotSupportedException]) @native()
19.  implicit val context: ActorContext
    Definition Classes
      Actor
20.  def debug(msg: String): Unit
    Definition Classes
      SupportActor
21.  def entryManagementBehaviors: Receive
    Definition Classes
      SupportActor
22.  final def eq(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
23.  def equals(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef → Any
24.  def finalize(): Unit
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.Throwable])
25.  var firstHeap: List[Entry]

    The first pool of objects waiting to be processed for removal.

26.  var firstTask: Cancellable

    The timer that checks whether entries in the first pool are still eligible for that pool.

27.  final def getClass(): Class[_ <: AnyRef]
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
28.  def hashCode(): Int
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
29.  def info(msg: String): Unit
    Definition Classes
      SupportActor
30.  final def isInstanceOf[T0]: Boolean
    Definition Classes
      Any
31.  final def ne(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
32.  final def notify(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
33.  final def notifyAll(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
34.  def postRestart(reason: Throwable): Unit
    Definition Classes
      Actor
    Annotations
      @throws(classOf[java.lang.Exception])
35.  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
36.  def preRestart(reason: Throwable, message: Option[Any]): Unit
    Definition Classes
      Actor
    Annotations
      @throws(classOf[java.lang.Exception])
37.  def preStart(): Unit
    Definition Classes
      Actor
    Annotations
      @throws(classOf[java.lang.Exception])
38.  def receive: Receive
    Definition Classes
      RemoverActor → Actor
39.  val sameEntryComparator: SimilarityComparator[Entry]
    Definition Classes
      RemoverActor → SupportActor
40.  var secondHeap: List[Entry]

    The second pool of objects waiting to be processed for removal.

41.  var secondTask: Cancellable

    The timer that checks whether entries in the second pool are still eligible for that pool.

42.  implicit final val self: ActorRef
    Definition Classes
      Actor
43.  final def sender(): ActorRef
    Definition Classes
      Actor
44.  def supervisorStrategy: SupervisorStrategy
    Definition Classes
      Actor
45.  final def synchronized[T0](arg0: => T0): T0
    Definition Classes
      AnyRef
46.  val taskResolver: ActorRef
47.  def toString(): String
    Definition Classes
      AnyRef → Any
48.  def trace(msg: String): Unit
    Definition Classes
      SupportActor
49.  def unhandled(message: Any): Unit
    Definition Classes
      Actor
50.  final def wait(): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
51.  final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
52.  final def wait(arg0: Long): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException]) @native()

### Inherited from SupportActor[Entry]

### Inherited from Actor

### Inherited from AnyRef

### Inherited from Any

### Ungrouped