Class

gopher.channels

FoldSelectorBuilderImpl

Related Doc: package channels

Permalink

class FoldSelectorBuilderImpl extends SelectorBuilderImpl

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. FoldSelectorBuilderImpl
  2. SelectorBuilderImpl
  3. ASTUtilImpl
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new FoldSelectorBuilderImpl(c: Context)

    Permalink

Type Members

  1. case class FoldParse(stateVal: scala.reflect.macros.Universe.ValDef, stateSelectRole: SelectRole, projections: List[FoldParseProjection], selectValName: scala.reflect.macros.blackbox.Context.TermName, selectCases: List[scala.reflect.macros.Universe.CaseDef]) extends Product with Serializable

    Permalink
  2. case class FoldParseProjection(sym: scala.reflect.macros.blackbox.Context.Symbol, selectRole: SelectRole) extends Product with Serializable

    Permalink
  3. sealed trait SelectRole extends AnyRef

    Permalink

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. object SelectRole

    Permalink
  5. def acceptSelectCaseDefPattern[A](caseDef: scala.reflect.macros.Universe.CaseDef, onRead: (scala.reflect.macros.Universe.Tree) ⇒ A, onWrite: (scala.reflect.macros.Universe.Tree) ⇒ A, onSelectTimeout: (scala.reflect.macros.Universe.Tree) ⇒ A, onIdle: (scala.reflect.macros.Universe.Tree) ⇒ A): A

    Permalink
  6. def afold[S](s: scala.reflect.macros.blackbox.Context.Expr[S])(op: scala.reflect.macros.blackbox.Context.Expr[(S, FoldSelect[S]) ⇒ S])(implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[S]): scala.reflect.macros.blackbox.Context.Expr[Future[S]]

    Permalink

    selector.afold(s0) { (s, selector) => selector match { case x1: in1.read => f1 case x2: in2.read => f2 case x3: out3.write if (x3==v) => f3 case _ => f4 } } will be transformed to

    selector.afold(s0) { (s, selector) => selector match { case x1: in1.read => f1 case x2: in2.read => f2 case x3: out3.write if (x3==v) => f3 case _ => f4 } } will be transformed to

    var s = s0
    val bn = new FoldSelector(3)
    bn.reading(in1)(x1 => f1 map {s=_; s })
    bn.reading(in2)(x2 => f2 map {s=_; s })
    bn.writing(out3,v)(x2 => f2 map {s=_; s})
    bn.idle(f4 map {s=_; s})

    also supported partial function syntax:

    selector.afold((0,1)){
       case ((x,y),s) => s match {
         case x1: in1.read => f1
         case x2: in2.read => f2
         case x3: out3.write if (x3==v) => f3
         case _  => f4
       }

    will be transformed to:

    var s = s0
    val bn = new FoldSelector(3)
    bn.reading(in1)(x1 => async{ val x = s._1;
                                 val y = s._2;
                                 s = f1; writeBarrier; s} })
    bn.reading(in2)(x2 => { val x = s._1;
                            val y = s._2;
                            s=f2; s} })
    bn.writing(out3,v[x/s._1;y/s._2])
                        (x2 => s=f2; s})

    Using channels as part of fold state:

    selector.afold(ch){ case (ch,s) =>
      s match {
         case x: ch.read => generated.write(x)
                            ch.filter(_ % x == 0)
      }
    }

    will be transformed to

    var s = ch
    val bn = new FoldSelector
    //val ef = new FoldSelectorEffectedInput(()=>s)
    bn.readingEffected(0)(x => async{ generated.write(x)
                               s.filter(_ % x == 0)})
  7. def apply[T](f: scala.reflect.macros.blackbox.Context.Expr[PartialFunction[Any, T]]): scala.reflect.macros.blackbox.Context.Expr[Future[T]]

    Permalink
    Definition Classes
    SelectorBuilderImpl
  8. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  9. def beforeRefresh(foldSelect: scala.reflect.macros.Universe.TermName): scala.reflect.macros.blackbox.Context.Tree

    Permalink
  10. def builder[T](f: scala.reflect.macros.blackbox.Context.Expr[PartialFunction[Any, T]]): scala.reflect.macros.blackbox.Context.Tree

    Permalink
    Definition Classes
    SelectorBuilderImpl
  11. val c: Context

    Permalink
  12. def clone(): AnyRef

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

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

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  16. def fold[S](s: scala.reflect.macros.blackbox.Context.Expr[S])(op: scala.reflect.macros.blackbox.Context.Expr[(S, FoldSelect[S]) ⇒ S])(implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[S]): scala.reflect.macros.blackbox.Context.Expr[S]

    Permalink
  17. def foreach[T](f: scala.reflect.macros.blackbox.Context.Expr[(Any) ⇒ T]): scala.reflect.macros.blackbox.Context.Expr[T]

    Permalink
    Definition Classes
    SelectorBuilderImpl
  18. def foreachBuildMatch(cases: List[scala.reflect.macros.Universe.CaseDef]): scala.reflect.macros.blackbox.Context.Tree

    Permalink
    Definition Classes
    SelectorBuilderImpl
  19. def foreachTransformIdleCaseDef(builderName: scala.reflect.macros.blackbox.Context.TermName, caseDef: scala.reflect.macros.Universe.CaseDef): scala.reflect.macros.blackbox.Context.Tree

    Permalink
    Definition Classes
    SelectorBuilderImpl
  20. def foreachTransformReadWriteTimeoutCaseDef(builderName: scala.reflect.macros.blackbox.Context.TermName, caseDef: scala.reflect.macros.Universe.CaseDef): scala.reflect.macros.blackbox.Context.Tree

    Permalink
    Definition Classes
    SelectorBuilderImpl
  21. final def getClass(): Class[_]

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

    Permalink
    Definition Classes
    AnyRef → Any
  23. def input[T](f: scala.reflect.macros.blackbox.Context.Expr[PartialFunction[Any, T]])(implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[T]): scala.reflect.macros.blackbox.Context.Expr[Input[T]]

    Permalink
    Definition Classes
    SelectorBuilderImpl
  24. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  25. def loop[T](f: scala.reflect.macros.blackbox.Context.Expr[PartialFunction[Any, T]]): scala.reflect.macros.blackbox.Context.Expr[Unit]

    Permalink

    processor: loop => just add waiters to this selector.

    processor: loop => just add waiters to this selector.

    Definition Classes
    SelectorBuilderImpl
  26. def makeEffectedName(sym: scala.reflect.macros.Universe.Symbol): scala.reflect.macros.Universe.TermName

    Permalink
  27. def map[T](f: scala.reflect.macros.blackbox.Context.Expr[(Any) ⇒ T])(implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[T]): scala.reflect.macros.blackbox.Context.Expr[Input[T]]

    Permalink
    Definition Classes
    SelectorBuilderImpl
  28. def mapBuildMatch[T](cases: List[scala.reflect.macros.Universe.CaseDef])(implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[T]): scala.reflect.macros.blackbox.Context.Tree

    Permalink
    Definition Classes
    SelectorBuilderImpl
  29. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  30. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  32. def parseFold[S](op: scala.reflect.macros.blackbox.Context.Expr[(S, FoldSelect[S]) ⇒ S]): FoldParse

    Permalink
  33. def parseGuardInSelectorCaseDef(name: scala.reflect.macros.blackbox.Context.TermName, guard: scala.reflect.macros.blackbox.Context.Tree): scala.reflect.macros.blackbox.Context.Tree

    Permalink
    Definition Classes
    ASTUtilImpl
  34. def preTransformCaseDef(fp: FoldParse, foldSelect: scala.reflect.macros.Universe.TermName, cd: scala.reflect.macros.Universe.CaseDef, stableName: scala.reflect.macros.Universe.TermName): scala.reflect.macros.Universe.CaseDef

    Permalink
  35. def preTransformCaseDefBody(fp: FoldParse, foldSelect: scala.reflect.macros.Universe.TermName, patSymbol: scala.reflect.macros.Universe.Symbol, body: scala.reflect.macros.blackbox.Context.Tree): scala.reflect.macros.blackbox.Context.Tree

    Permalink
  36. def refreshEffected(fp: FoldParse, foldSelect: scala.reflect.macros.Universe.TermName): List[scala.reflect.macros.blackbox.Context.Tree]

    Permalink
  37. def substProj(foldParse: FoldParse, newName: scala.reflect.macros.blackbox.Context.TermName, body: scala.reflect.macros.blackbox.Context.Tree, substEffected: Boolean, debug: Boolean): scala.reflect.macros.blackbox.Context.Tree

    Permalink
  38. final def synchronized[T0](arg0: ⇒ T0): T0

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

    Permalink
    Definition Classes
    AnyRef → Any
  40. def transformSelectMatch(bn: scala.reflect.macros.Universe.TermName, cases: List[scala.reflect.macros.Universe.CaseDef]): List[scala.reflect.macros.blackbox.Context.Tree]

    Permalink
    Definition Classes
    SelectorBuilderImpl
  41. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  44. def withProjAssignments(fp: FoldParse, patSymbol: scala.reflect.macros.Universe.Symbol, body: scala.reflect.macros.blackbox.Context.Tree): scala.reflect.macros.blackbox.Context.Tree

    Permalink

Inherited from SelectorBuilderImpl

Inherited from ASTUtilImpl

Inherited from AnyRef

Inherited from Any

Ungrouped