Trait/Object

io.buoyant.router

StackRouter

Related Docs: object StackRouter | package router

Permalink

trait StackRouter[Req, Rsp] extends Router[Req, Rsp] with Parameterized[StackRouter[Req, Rsp]]

A Router that composes three com.twitter.finagle.Stacks:

* pathStack is a per-Dst.Path Stack segment. When this Stack is applied, the Dst.Path Stack.Param is configured. This type of destination has a destination com.twitter.finagle.Path, a base com.twitter.finagle.Dtab, and a local (usually per-request) Dtab.

* boundStack is a per-com.twitter.finagle.buoyant.Dst.Bound Stack segment. When this Stack is applied, the Dst.Bound Stack.Param is configured. This type of destination has an com.twitter.finagle.Addr, a bound id, and a residual path.

* clientStack is a per- com.twitter.finagle.BindingFactory.Dest Stack segment. When this Stack is applied, the BindingFactory.Dest Stack.Param is configured with a com.twitter.finagle.Name.Bound that does not have a residual com.twitter.finagle.Path.

The stack is divided into these layers so that caching may be applied bottom-up. This enables a clientStack to be shared by multiple boundStack and a boundStack to be shared by multiple pathStacks. It is the StackRouter's job to connect these Stack segments and to set the proper com.twitter.finagle.Stack.Params as described above.

Linear Supertypes
Parameterized[StackRouter[Req, Rsp]], Router[Req, Rsp], AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. StackRouter
  2. Parameterized
  3. Router
  4. AnyRef
  5. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def boundFiltered(f: Filter[Req, Rsp, Req, Rsp]): StackRouter[Req, Rsp]

    Permalink

    Prepend boundStack with the given filter.

  2. abstract def boundStack: Stack[ServiceFactory[Req, Rsp]]

    Permalink
  3. abstract def clientFiltered(f: Filter[Req, Rsp, Req, Rsp]): StackRouter[Req, Rsp]

    Permalink

    Prepend clientStack with the given filter.

  4. abstract def clientStack: Stack[ServiceFactory[Req, Rsp]]

    Permalink
  5. abstract def factory(): ServiceFactory[Req, Rsp]

    Permalink

    Create a new ServiceFactory that performs per-request routing.

    Create a new ServiceFactory that performs per-request routing.

    Definition Classes
    Router
  6. abstract def params: Params

    Permalink

    The current parameter map used in this StackRouter

    The current parameter map used in this StackRouter

    Definition Classes
    StackRouter → Parameterized
  7. abstract def pathFiltered(f: Filter[Req, Rsp, Req, Rsp]): StackRouter[Req, Rsp]

    Permalink

    Prepend pathStack with the given filter.

  8. abstract def pathStack: Stack[ServiceFactory[Req, Rsp]]

    Permalink
  9. abstract def withBoundStack(stack: Stack[ServiceFactory[Req, Rsp]]): StackRouter[Req, Rsp]

    Permalink
  10. abstract def withClientStack(stack: Stack[ServiceFactory[Req, Rsp]]): StackRouter[Req, Rsp]

    Permalink
  11. abstract def withParams(ps: Params): StackRouter[Req, Rsp]

    Permalink
    Definition Classes
    StackRouter → Parameterized
  12. abstract def withPathStack(stack: Stack[ServiceFactory[Req, Rsp]]): StackRouter[Req, Rsp]

    Permalink

Concrete 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 asInstanceOf[T0]: T0

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def configured[P](psp: (P, Param[P])): StackRouter[Req, Rsp]

    Permalink
    Definition Classes
    Parameterized
  7. def configured[P](p: P)(implicit sp: Param[P]): StackRouter[Req, Rsp]

    Permalink
    Definition Classes
    Parameterized
  8. def configuredParams(newParams: Params): StackRouter[Req, Rsp]

    Permalink
    Definition Classes
    Parameterized
  9. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit

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

    Permalink
    Definition Classes
    AnyRef → Any
  13. def hashCode(): Int

    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. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  18. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  19. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  20. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Parameterized[StackRouter[Req, Rsp]]

Inherited from Router[Req, Rsp]

Inherited from AnyRef

Inherited from Any

Ungrouped