# PSF-LoginServer - master - net.psforever.services.account.PersistenceMonitor
PSF - LoginServer - master - net.psforever.services.account.PersistenceMonitor
Keywords: PSF LoginServer master net.psforever.services.account.PersistenceMonitor

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
- AccountIntermediaryService
- AccountPersistenceService
- IPAddress
- PersistenceMonitor
- PlayerToken
- ReceiveAccountData
- ReceiveIPAddress
- RetrieveAccountData
- RetrieveIPAddress
- StoreAccountData
- StoreIPAddress

c

net.psforever.services.account

# PersistenceMonitor

###

#### class PersistenceMonitor extends Actor

Observe and manage the persistence of a single named player avatar entity in the game world, with special care to the conditions of short interruption in connectivity (relogging) and end-of-life operations. Upon login, the monitor will echo all of the current information about the user's (recent) login back to the `sender`. With a zone and a coordinate position in that zone, a user's player avatar can be properly reconnected or can be reconstructed. Without actual recent activity, the default information about the zone is an indication that the user must start this player avatar from scratch. The monitor expects a reliable update messaging (heartbeat) to keep track of the important information and to determine the conditions for end-of-life activity.

Source
  AccountPersistenceService.scala

Linear Supertypes
Actor, AnyRef, Any

Ordering

1. Alphabetic
2. By Inheritance

Inherited

1. PersistenceMonitor
2. Actor
3. AnyRef
4. Any

1. Hide All
2. Show All

Visibility

1. Public
2. Protected

### Instance Constructors

1.  new PersistenceMonitor(name: String, squadService: ActorRef)

   name

     the unique name of the player

   squadService

     a hook into the `SquadService` event system

### Type Members

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

### 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 AvatarLogout(avatar: Avatar): Unit

   A common set of actions to perform in the course of logging out an avatar.

   A common set of actions to perform in the course of logging out an avatar. Of the four scenarios described - in transport, on foot, released, missing - three of them utilize these operations. The avatar will virtually always be in an existential position, one that needs to be handled at logout

   avatar

     the avatar

   See also

     `Avatar`

     `Deployables.Disown`

     `Service.Leave`

     `Zone.Population.Leave`

5.  def PerformLogout(): Unit

   When the sustenance updates of the persistence monitor come to an end, and the persistence monitor itself is about to clean itself up, the player and avatar combination that has been associated with it will also undergo independent end of life activity.

   When the sustenance updates of the persistence monitor come to an end, and the persistence monitor itself is about to clean itself up, the player and avatar combination that has been associated with it will also undergo independent end of life activity. This is the true purpose of the persistence object - to perform a proper logout.
   The updates have been providing the zone and the basic information about the user (player name) has been provided since the beginning and it's a trivial matter to find where the avatar and player and assess their circumstances. The four important vectors are: the player avatar is in a vehicle, the player avatar is standing, only the avatar exists and the player released, and neither the avatar nor the player exist. It does not matter whether the player, if encountered, is alive or dead, only if they have been rendered a corpse and did not respawn. The fourth condition is not technically a failure condition, and can arise during normal transitional gameplay, but should be uncommon.

6.  def PlayerAvatarLogout(avatar: Avatar, player: Player): Unit

   A common set of actions to perform in the course of logging out a player avatar.

   A common set of actions to perform in the course of logging out a player avatar. Of the four scenarios described - in transport, on foot, released, missing - two of them utilize these operations. One of the other two uses a modified version of some of these activities to facilitate its log out. As this persistence monitor is about to become invalid, any messages sent in response to what we are sending are received by the monitor's parent.

   avatar

     the avatar

   player

     the player

   See also

     `Avatar`

     `AvatarAction.ObjectDelete`

     `AvatarServiceMessage`

     `GUIDTask.UnregisterPlayer`

     `Player`

     `Zone.AvatarEvents`

     `Zone.Population.Release`

7.  def UpdateTimer(): Unit

   Restart the minimum activity timer.

8.  def aroundPostRestart(reason: Throwable): Unit
   Attributes
     protected[akka]
   Definition Classes
     Actor
   Annotations
     @InternalApi()
9.  def aroundPostStop(): Unit
   Attributes
     protected[akka]
   Definition Classes
     Actor
   Annotations
     @InternalApi()
10.  def aroundPreRestart(reason: Throwable, message: Option[Any]): Unit
    Attributes
      protected[akka]
    Definition Classes
      Actor
    Annotations
      @InternalApi()
11.  def aroundPreStart(): Unit
    Attributes
      protected[akka]
    Definition Classes
      Actor
    Annotations
      @InternalApi()
12.  def aroundReceive(receive: akka.actor.Actor.Receive, msg: Any): Unit
    Attributes
      protected[akka]
    Definition Classes
      Actor
    Annotations
      @InternalApi()
13.  final def asInstanceOf[T0]: T0
    Definition Classes
      Any
14.  def clone(): AnyRef
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.CloneNotSupportedException]) @native()
15.  implicit val context: ActorContext
    Definition Classes
      Actor
16.  final def eq(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
17.  def equals(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef → Any
18.  def finalize(): Unit
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.Throwable])
19.  final def getClass(): Class[_ <: AnyRef]
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
20.  def hashCode(): Int
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
21.  var inZone: Zone

    the last-reported zone of this player

22.  final def isInstanceOf[T0]: Boolean
    Definition Classes
      Any
23.  var kickTime: Option[Long]

24.  var kicked: Boolean

25.  var lastPosition: Vector3

    the last-reported game coordinate position of this player

26.  val log: Logger

    the sparingly-used log

27.  final def ne(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
28.  final def notify(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
29.  final def notifyAll(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
30.  var persistTime: Option[Long]

    a custom logout time for this player; 60s by default

31.  def postRestart(reason: Throwable): Unit
    Definition Classes
      Actor
    Annotations
      @throws(classOf[java.lang.Exception])
32.  def postStop(): Unit

    Perform logout operations before the persistence monitor finally stops.

    Perform logout operations before the persistence monitor finally stops.

    Definition Classes
      PersistenceMonitor → Actor
33.  def preRestart(reason: Throwable, message: Option[Any]): Unit
    Definition Classes
      Actor
    Annotations
      @throws(classOf[java.lang.Exception])
34.  def preStart(): Unit
    Definition Classes
      Actor
    Annotations
      @throws(classOf[java.lang.Exception])
35.  def receive: Receive
    Definition Classes
      PersistenceMonitor → Actor
36.  implicit final val self: ActorRef
    Definition Classes
      Actor
37.  final def sender(): ActorRef
    Definition Classes
      Actor
38.  def supervisorStrategy: SupervisorStrategy
    Definition Classes
      Actor
39.  final def synchronized[T0](arg0: => T0): T0
    Definition Classes
      AnyRef
40.  var timer: Cancellable

    the ongoing amount of permissible inactivity

41.  def toString(): String
    Definition Classes
      AnyRef → Any
42.  def unhandled(message: Any): Unit
    Definition Classes
      Actor
43.  final def wait(): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
44.  final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
45.  final def wait(arg0: Long): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException]) @native()

### Inherited from Actor

### Inherited from AnyRef

### Inherited from Any

### Ungrouped