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

com.twitter.finagle.serverset2.client.NullZooKeeperClient.scala Maven / Gradle / Ivy

There is a newer version: 6.37.0
Show newest version
package com.twitter.finagle.serverset2.client

import com.twitter.conversions.time._
import com.twitter.finagle.serverset2.client.Data.Stat
import com.twitter.finagle.serverset2.client.Node.{ACL, Children}
import com.twitter.io.Buf
import com.twitter.util.{Duration, Future, Time}

/**
 * Provide a Null client, useful as an initial value for a wrapper that
 * re-establishes a ZooKeeper connection on SessionExpiration, as
 * ZooKeeperClient is designed for single session operation.
 */
trait NullZooKeeperClient extends ZooKeeperClient {
  def sessionId: Long = -1
  def getEphemerals(): Future[Seq[String]] = Future.never
  def addAuthInfo(scheme: String, auth: Buf): Future[Unit] = Future.never
  def sessionTimeout: Duration = 0.seconds
  def sessionPasswd: Buf = Buf.Empty
  def close(deadline: Time): Future[Unit] = Future.never
}

trait NullZooKeeperReader extends ZooKeeperReader with NullZooKeeperClient {
  def exists(path: String): Future[Option[Stat]] = Future.never
  def getDataWatch(path: String): Future[Watched[Node.Data]] = Future.never
  def sync(path: String): Future[Unit] = Future.never
  def getData(path: String): Future[Node.Data] = Future.never
  def existsWatch(path: String): Future[Watched[Option[Stat]]] = Future.never
  def getACL(path: String): Future[ACL] = Future.never
  def getChildrenWatch(path: String): Future[Watched[Children]] = Future.never
  def getChildren(path: String): Future[Children] = Future.never
}

trait NullZooKeeperWriter extends ZooKeeperWriter with NullZooKeeperClient {
  def create(
    path: String,
    data: Option[Buf],
    acl: Seq[Data.ACL],
    createMode: CreateMode
  ): Future[String] = Future.never

  def delete(path: String, version: Option[Int]): Future[Unit] = Future.never
  def setData(path: String, data: Option[Buf], version: Option[Int]): Future[Stat] = Future.never
  def setACL(path: String, acl: Seq[Data.ACL], version: Option[Int]): Future[Stat] = Future.never
}

trait NullZooKeeperMulti extends ZooKeeperMulti with NullZooKeeperClient {
  def multi(ops: Seq[Op]): Future[Seq[OpResult]] = Future.never
}

trait NullZooKeeperRW extends ZooKeeperRW with NullZooKeeperReader with NullZooKeeperWriter
trait NullZooKeeperRWMulti extends ZooKeeperRWMulti with NullZooKeeperReader with NullZooKeeperWriter with NullZooKeeperMulti

object NullZooKeeperClient extends NullZooKeeperClient
object NullZooKeeperReader extends NullZooKeeperReader
object NullZooKeeperWriter extends NullZooKeeperWriter
object NullZooKeeperMulti extends NullZooKeeperMulti

object NullZooKeeperRW extends NullZooKeeperRW
object NullZooKeeperRWMulti extends NullZooKeeperRWMulti




© 2015 - 2025 Weber Informatics LLC | Privacy Policy