Class

com.twitter.finagle.ThriftMux

ServerMuxer

Related Doc: package ThriftMux

Permalink

case class ServerMuxer(stack: Stack[ServiceFactory[Request, Response]] = BaseServerStack, params: Params = BaseServerParams) extends StdStackServer[Request, Response, ServerMuxer] with Product with Serializable

A server for the Thrift protocol served over com.twitter.finagle.mux. ThriftMuxServer is backwards-compatible with Thrift clients that use the framed transport and binary protocol. It switches to the backward-compatible mode when the first request is not recognized as a valid Mux message but can be successfully handled by the underlying Thrift service. Since a Thrift message that is encoded with the binary protocol starts with a header value of 0x800100xx, Mux does not confuse it with a valid Mux message (0x80 = -128 is an invalid Mux message type) and the server can reliably detect the non-Mux Thrift client and switch to the backwards-compatible mode.

Note that the server is also compatible with non-Mux finagle-thrift clients. It correctly responds to the protocol up-negotiation request and passes the tracing information embedded in the thrift requests to Mux (which has native tracing support).

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ServerMuxer
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. StdStackServer
  7. ListeningStackServer
  8. WithServerAdmissionControl
  9. WithServerSession
  10. WithServerTransport
  11. CommonParams
  12. StackServer
  13. Transformable
  14. StackBasedServer
  15. Parameterized
  16. Server
  17. AnyRef
  18. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ServerMuxer(stack: Stack[ServiceFactory[Request, Response]] = BaseServerStack, params: Params = BaseServerParams)

    Permalink

Type Members

  1. type Context = MuxContext

    Permalink
    Attributes
    protected
    Definition Classes
    ServerMuxer → StdStackServer
  2. type In = Buf

    Permalink
    Attributes
    protected
    Definition Classes
    ServerMuxer → StdStackServer
  3. type Out = Buf

    Permalink
    Attributes
    protected
    Definition Classes
    ServerMuxer → StdStackServer

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def addServerToRegistry(listenerName: String): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    ListeningStackServer
  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. def configured[P](psp: (P, Param[P])): ServerMuxer

    Permalink
    Definition Classes
    ListeningStackServer → StackServer → Parameterized
  8. def configured[P](p: P)(implicit arg0: Param[P]): ServerMuxer

    Permalink
    Definition Classes
    ListeningStackServer → StackServer → Parameterized
  9. def configuredParams(newParams: Params): ServerMuxer

    Permalink
    Definition Classes
    ListeningStackServer → StackServer → Parameterized
  10. def copy1(stack: Stack[ServiceFactory[Request, Response]] = this.stack, params: Params = this.params): ServerMuxer

    Permalink
    Attributes
    protected
    Definition Classes
    ServerMuxer → ListeningStackServer
  11. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  12. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  13. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  14. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  16. def newDispatcher(transport: Transport[In, Out] { type Context <: ServerMuxer.this.Context }, service: Service[Request, Response]): Closable

    Permalink
    Attributes
    protected
    Definition Classes
    ServerMuxer → StdStackServer
  17. def newListener(): Listener[In, Out, Context]

    Permalink
    Attributes
    protected
    Definition Classes
    ServerMuxer → StdStackServer
  18. final def newListeningServer(serviceFactory: ServiceFactory[Request, Response], addr: SocketAddress)(trackSession: (ClientConnection) ⇒ Unit): ListeningServer

    Permalink
    Attributes
    protected
    Definition Classes
    StdStackServer → ListeningStackServer
  19. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  20. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  21. val params: Params

    Permalink
    Definition Classes
    ServerMuxer → StackServer → Parameterized
  22. def serve(addr: SocketAddress, factory: ServiceFactory[Request, Response]): ListeningServer

    Permalink
    Definition Classes
    ServerMuxer → ListeningStackServer → Server
  23. final def serve(addr: String, service: Service[Request, Response]): ListeningServer

    Permalink
    Definition Classes
    Server
  24. final def serve(addr: String, service: ServiceFactory[Request, Response]): ListeningServer

    Permalink
    Definition Classes
    Server
  25. final def serve(addr: SocketAddress, service: Service[Request, Response]): ListeningServer

    Permalink
    Definition Classes
    Server
  26. def serveAndAnnounce(name: String, service: Service[Request, Response]): ListeningServer

    Permalink
    Definition Classes
    Server
  27. def serveAndAnnounce(name: String, service: ServiceFactory[Request, Response]): ListeningServer

    Permalink
    Definition Classes
    Server
  28. def serveAndAnnounce(name: String, addr: String, service: Service[Request, Response]): ListeningServer

    Permalink
    Definition Classes
    Server
  29. def serveAndAnnounce(name: String, addr: String, service: ServiceFactory[Request, Response]): ListeningServer

    Permalink
    Definition Classes
    Server
  30. def serveAndAnnounce(name: String, addr: SocketAddress, service: Service[Request, Response]): ListeningServer

    Permalink
    Definition Classes
    Server
  31. def serveAndAnnounce(name: String, addr: SocketAddress, service: ServiceFactory[Request, Response]): ListeningServer

    Permalink
    Definition Classes
    Server
  32. val stack: Stack[ServiceFactory[Request, Response]]

    Permalink
    Definition Classes
    ServerMuxer → StackServer
  33. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  34. def transformed(t: Transformer): ServerMuxer

    Permalink
    Definition Classes
    ListeningStackServer → StackServer → Transformable
  35. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  36. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  37. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  38. val withAdmissionControl: ServerAdmissionControlParams[ServerMuxer]

    Permalink
    Definition Classes
    WithServerAdmissionControl
  39. def withExceptionStatsHandler(exceptionStatsHandler: ExceptionStatsHandler): ServerMuxer

    Permalink
    Definition Classes
    CommonParams
  40. def withLabel(label: String): ServerMuxer

    Permalink
    Definition Classes
    CommonParams
  41. def withMonitor(monitor: Monitor): ServerMuxer

    Permalink
    Definition Classes
    CommonParams
  42. def withParams(params: Params): ServerMuxer

    Permalink
    Definition Classes
    ListeningStackServer → StackServer → Parameterized
  43. def withRequestTimeout(timeout: Tunable[Duration]): ServerMuxer

    Permalink
    Definition Classes
    CommonParams
  44. def withRequestTimeout(timeout: Duration): ServerMuxer

    Permalink
    Definition Classes
    CommonParams
  45. def withResponseClassifier(responseClassifier: ResponseClassifier): ServerMuxer

    Permalink
    Definition Classes
    CommonParams
  46. val withSession: SessionParams[ServerMuxer]

    Permalink
    Definition Classes
    WithServerSession
  47. def withStack(stack: Stack[ServiceFactory[Request, Response]]): ServerMuxer

    Permalink
    Definition Classes
    ListeningStackServer → StackServer
  48. def withStatsReceiver(statsReceiver: StatsReceiver): ServerMuxer

    Permalink
    Definition Classes
    CommonParams
  49. def withTracer(tracer: Tracer): ServerMuxer

    Permalink
    Definition Classes
    CommonParams
  50. val withTransport: ServerTransportParams[ServerMuxer]

    Permalink
    Definition Classes
    WithServerTransport

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from WithServerSession[ServerMuxer]

Inherited from CommonParams[ServerMuxer]

Inherited from StackServer[Request, Response]

Inherited from Transformable[ServerMuxer]

Inherited from StackBasedServer[Request, Response]

Inherited from Parameterized[ServerMuxer]

Inherited from finagle.Server[Request, Response]

Inherited from AnyRef

Inherited from Any

Ungrouped