skinny.controller.feature

FutureOpsFeature

trait FutureOpsFeature extends AnyRef

Provides seamless Future operations within SkinnyController. This trait enables accessing request, session and RequestScope from Future operations safely.

import scala.concurrent._
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext.Implicits.global

class SomeControllerOps(controller: SomeController) {
  def setOther(implicit req: HttpServletRequest) = {
    controller.set("bar", Seq(1,2,3)) // implicit request is not ambiguous here
  }
}

class SomeController extends ApplicationController {
  def index = {
    val ops = new SomeControllerOps(this)
    awaitFutures(5.seconds)(
      futureWithRequest { implicit req =>
        // Explicitly specify HttpServletRequest here
        set("foo" -> FooService.getSomething()))(req)
      },
      futureWithRequest(req => ops.setOther(req))
    )
    render("/some/index")
  }
}
Self Type
SkinnyControllerBase
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. FutureOpsFeature
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Value Members

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

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

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

    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  5. def awaitFutures[A](duration: Duration)(fs: Future[A]*)(implicit ec: ExecutionContext): Seq[A]

    Awaits multiple Future's results.

    Awaits multiple Future's results.

    duration

    duration to await futures

    fs

    futures

    ec

    execution context

    returns

    results

  6. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. final def eq(arg0: AnyRef): Boolean

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

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

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. def futureWithRequest[A](op: (HttpServletRequest) ⇒ A)(implicit ec: ExecutionContext, req: HttpServletRequest): Future[A]

    Creates a future with implicit request.

    Creates a future with implicit request.

    A

    response type

    op

    operation inside this future

    ec

    execution context

    req

    request

    returns

    response value

  11. final def getClass(): Class[_]

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

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

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

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

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

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

    Definition Classes
    AnyRef
  18. def toString(): String

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

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped