All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tanukkii.reactivezk.ZKConnectionStateAwareActor.scala Maven / Gradle / Ivy

package tanukkii.reactivezk

import akka.actor.Actor

private [reactivezk] sealed trait ZooKeeperConnectionState
private [reactivezk] case object DisconnectedState extends ZooKeeperConnectionState
private [reactivezk] case object SyncConnectedState extends ZooKeeperConnectionState

trait ZKConnectionStateAwareActor extends Actor {
  private var syncConnected = false

  def receive: Receive = {
    case SyncConnectedState =>
      syncConnected = true
    case DisconnectedState =>
      syncConnected = false
    case msg if syncConnected && receiveSyncConnected.isDefinedAt(msg) =>
      receiveSyncConnected(msg)
    case msg if !syncConnected && receiveDisconnected.isDefinedAt(msg) =>
      receiveDisconnected(msg)
  }

  def receiveSyncConnected: Receive

  def receiveDisconnected: Receive
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy