Packages

c

gopher.channels

FoldSelectorBuilderImpl

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)

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
  2. case class FoldParseProjection (sym: scala.reflect.macros.blackbox.Context.Symbol, selectRole: SelectRole) extends Product with Serializable
  3. sealed trait SelectRole extends AnyRef

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. 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
  5. 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]]

    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)})
  6. def apply[T](f: scala.reflect.macros.blackbox.Context.Expr[PartialFunction[Any, T]]): scala.reflect.macros.blackbox.Context.Expr[Future[T]]
    Definition Classes
    SelectorBuilderImpl
  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. def beforeRefresh(foldSelect: scala.reflect.macros.Universe.TermName): scala.reflect.macros.blackbox.Context.Tree
  9. def builder[T](f: scala.reflect.macros.blackbox.Context.Expr[PartialFunction[Any, T]]): scala.reflect.macros.blackbox.Context.Tree
    Definition Classes
    SelectorBuilderImpl
  10. val c: Context
  11. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  14. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  15. 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]
  16. def foreach[T](f: scala.reflect.macros.blackbox.Context.Expr[(Any) ⇒ T]): scala.reflect.macros.blackbox.Context.Expr[T]
    Definition Classes
    SelectorBuilderImpl
  17. def foreachBuildMatch(cases: List[scala.reflect.macros.Universe.CaseDef]): scala.reflect.macros.blackbox.Context.Tree
    Definition Classes
    SelectorBuilderImpl
  18. def foreachTransformIdleCaseDef(builderName: scala.reflect.macros.blackbox.Context.TermName, caseDef: scala.reflect.macros.Universe.CaseDef): scala.reflect.macros.blackbox.Context.Tree
    Definition Classes
    SelectorBuilderImpl
  19. def foreachTransformReadWriteTimeoutCaseDef(builderName: scala.reflect.macros.blackbox.Context.TermName, caseDef: scala.reflect.macros.Universe.CaseDef): scala.reflect.macros.blackbox.Context.Tree
    Definition Classes
    SelectorBuilderImpl
  20. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  21. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  22. 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]]
    Definition Classes
    SelectorBuilderImpl
  23. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  24. def loop[T](f: scala.reflect.macros.blackbox.Context.Expr[PartialFunction[Any, T]]): scala.reflect.macros.blackbox.Context.Expr[Unit]

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

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

    Definition Classes
    SelectorBuilderImpl
  25. def makeEffectedName(sym: scala.reflect.macros.Universe.Symbol): scala.reflect.macros.Universe.TermName
  26. 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]]
    Definition Classes
    SelectorBuilderImpl
  27. 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
    Definition Classes
    SelectorBuilderImpl
  28. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  29. final def notify(): Unit
    Definition Classes
    AnyRef
  30. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  31. def parseFold[S](op: scala.reflect.macros.blackbox.Context.Expr[(S, FoldSelect[S]) ⇒ S]): FoldParse
  32. def parseGuardInSelectorCaseDef(name: scala.reflect.macros.blackbox.Context.TermName, guard: scala.reflect.macros.blackbox.Context.Tree): scala.reflect.macros.blackbox.Context.Tree
    Definition Classes
    ASTUtilImpl
  33. 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
  34. 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
  35. def refreshEffected(fp: FoldParse, foldSelect: scala.reflect.macros.Universe.TermName): List[scala.reflect.macros.blackbox.Context.Tree]
  36. 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
  37. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  38. def toString(): String
    Definition Classes
    AnyRef → Any
  39. def transformSelectMatch(bn: scala.reflect.macros.Universe.TermName, cases: List[scala.reflect.macros.Universe.CaseDef]): List[scala.reflect.macros.blackbox.Context.Tree]
    Definition Classes
    SelectorBuilderImpl
  40. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  41. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  42. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  43. def withProjAssignments(fp: FoldParse, patSymbol: scala.reflect.macros.Universe.Symbol, body: scala.reflect.macros.blackbox.Context.Tree): scala.reflect.macros.blackbox.Context.Tree
  44. object SelectRole

Inherited from SelectorBuilderImpl

Inherited from ASTUtilImpl

Inherited from AnyRef

Inherited from Any

Ungrouped