com.twitter.finagle

Filter

abstract class Filter[-ReqIn, +RepOut, +ReqOut, -RepIn] extends (ReqIn, Service[ReqOut, RepIn]) ⇒ Future[RepOut]

A Filter acts as a decorator/transformer of a service. It may apply transformations to the input and output of that service:

(* MyService *) [ReqIn -> (ReqOut -> RepIn) -> RepOut]

For example, you may have a POJO service that takes Strings and parses them as Ints. If you want to expose this as a Network Service via Thrift, it is nice to isolate the protocol handling from the business rules. Hence you might have a Filter that converts back and forth between Thrift structs. Again, your service deals with POJOs:

[ThriftIn -> (String -> Int) -> ThriftOut]

Thus, a Filter[A, B, C, D] converts a Service[C, D] to a Service[A, B]. In other words, it converts a Service[ReqOut, RepIn] to a Service[ReqIn, RepOut].

Linear Supertypes
(ReqIn, Service[ReqOut, RepIn]) ⇒ Future[RepOut], AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Filter
  2. Function2
  3. AnyRef
  4. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Filter()

Abstract Value Members

  1. abstract def apply(request: ReqIn, service: Service[ReqOut, RepIn]): Future[RepOut]

    This is the method to override/implement to create your own Filter.

    This is the method to override/implement to create your own Filter.

    request

    the input request type

    service

    a service that takes the output request type and the input response type

    Definition Classes
    Filter → Function2

Concrete Value Members

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

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

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

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. def andThen(factory: ServiceFactory[ReqOut, RepIn]): ServiceFactory[ReqIn, RepOut]

  7. def andThen(f: (ReqOut) ⇒ Future[RepIn]): (ReqIn) ⇒ Future[RepOut]

  8. def andThen(service: Service[ReqOut, RepIn]): Service[ReqIn, RepOut]

    Terminates a filter chain in a service.

    Terminates a filter chain in a service. For example,

    myFilter.andThen(myService)

    service

    a service that takes the output request type and the input response type.

  9. def andThen[Req2, Rep2](next: Filter[ReqOut, RepIn, Req2, Rep2]): Filter[ReqIn, RepOut, Req2, Rep2]

    Chains a series of filters together:

    Chains a series of filters together:

    myModularService = handleExceptions.andThen(thrift2Pojo.andThen(parseString))

    Note: synchronously thrown exceptions in the underlying service are automatically lifted into Future.exception.

    next

    another filter to follow after this one

  10. def andThenIf[Req2 >: ReqOut, Rep2 <: RepIn](condAndFilter: (Boolean, Filter[ReqOut, RepIn, Req2, Rep2])): Filter[ReqIn, RepOut, Req2, Rep2]

    Conditionally propagates requests down the filter chain.

    Conditionally propagates requests down the filter chain. This may useful if you are statically wiring together filter chains based on a configuration file, for instance.

    condAndFilter

    a tuple of boolean and filter.

  11. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  12. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  13. def curried: (ReqIn) ⇒ (Service[ReqOut, RepIn]) ⇒ Future[RepOut]

    Definition Classes
    Function2
    Annotations
    @unspecialized()
  14. final def eq(arg0: AnyRef): Boolean

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

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

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

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

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

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

    Definition Classes
    AnyRef
  21. final def notify(): Unit

    Definition Classes
    AnyRef
  22. final def notifyAll(): Unit

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

    Definition Classes
    AnyRef
  24. def toString(): String

    Definition Classes
    Function2 → AnyRef → Any
  25. def tupled: ((ReqIn, Service[ReqOut, RepIn])) ⇒ Future[RepOut]

    Definition Classes
    Function2
    Annotations
    @unspecialized()
  26. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws()

Inherited from (ReqIn, Service[ReqOut, RepIn]) ⇒ Future[RepOut]

Inherited from AnyRef

Inherited from Any

Ungrouped