Packages

  • package root
    Definition Classes
    root
  • package gopher

    Provides scala API for 'go-like' CSP channels.

    Provides scala API for 'go-like' CSP channels.

    Overview

    see readme for quick introduction.

    Usage

    At first you must receive gopherApi as Akka extension:

    import gopher._
    
    .....
    val gopherApi = Gopher(actorSystem)

    Then you can use CPS channels with blocling operations inside go clauses:

    val channel = gopherApi.makeChannel[Long]
    val n = 10000
    val producer = go {
     @volatile var(x,y) = (0L,1L)
     for( s <- gopherApi.select.forever) {
       case z: channel.write if (z==x) =>
                  x = y
                  y = x+z
                  if (x > n) {
                     channel.close
                     implicitly[FlowTermination[Unit]].doExit()
                  }
     }
    }
    val consumer = for((c,i) <- channel.zip(1 to n)) {
       Console.println(s"fib(${i})=${c}")
    }
    Await.ready(consumer, 10 seconds)

    and defer/recover in go/goScope

    goScope{
      val f = openFile(myFileName)
      defer{
        if (! recover{case ex:FileNotFoundException => Console.println("invalid fname")}) {
           f.close()
        }
      }
    }
    Definition Classes
    root
    See also

    gopher.GopherAPI

    gopher.channels.Channel

    gopher.channels.Input

    gopher.channels.Output

    gopher.channels.SelectorBuilder

    gopher.channels.SelectFactory

  • package transputers

    transputers implementations

    transputers implementations

    Definition Classes
    gopher
    See also

    gopher.transputers.TransputerSupervisor

    gopher.transputers.ReplicatedTransputer

  • abstract class ReplicatedTransputer[T <: Transputer, Self] extends ParTransputer

    Replicated[X] is transputer which keep n instances of X where ports of replicated consumer are connected to appropriative ports of instances in parallel.

    Replicated[X] is transputer which keep n instances of X where ports of replicated consumer are connected to appropriative ports of instances in parallel.

    Definition Classes
    transputers
    See also

    gopher.GopherAPI#replicate

  • InPort
  • InPortWithAdapter
  • OutPort
  • OutPortWithAdapter
  • SelectorRunner

class OutPortWithAdapter[A] extends (ReplicatedTransputer.this)#OutPort[A]

Linear Supertypes
(ReplicatedTransputer.this)#OutPort[A], Output[A], GopherAPIProvider, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. OutPortWithAdapter
  2. OutPort
  3. Output
  4. GopherAPIProvider
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new OutPortWithAdapter(out: Output[A])

Type Members

  1. type write = A
    Definition Classes
    Output
  2. type writeExp[X] = A
    Definition Classes
    Output
  3. type ~> = A
    Definition Classes
    Output

Value Members

  1. macro def !(a: A): Unit

    shortcut for blocking write.

    shortcut for blocking write.

    Definition Classes
    Output
  2. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  3. final def ##: Int
    Definition Classes
    AnyRef → Any
  4. def *!: Input[A]
    Definition Classes
    OutPort
  5. macro def <~(a: A): Output[A]

    shortcut for blocking write.

    shortcut for blocking write.

    Definition Classes
    Output
  6. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  7. def >~~>(x: InPort[A]): Unit
    Definition Classes
    OutPort
  8. var adapter: PortAdapter[Output, A]
  9. def api: GopherAPI
    Definition Classes
    OutPortOutputGopherAPIProvider
  10. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  11. def awrite(a: A): Future[A]
    Definition Classes
    Output
  12. def awriteAll[C <: Iterable[A]](c: C): Future[Unit]
    Definition Classes
    Output
  13. def cbwrite[B](f: (ContWrite[A, B]) => Option[(A, Future[Continuated[B]])], ft: FlowTermination[B]): Unit

    apply f and send result to channels processor.

    apply f and send result to channels processor.

    Definition Classes
    OutPortOutput
  14. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  15. def connect(inPort: InPort[A], bufferSize: Int = 1): Unit
    Definition Classes
    OutPort
  16. def connect(x: Output[A]): Unit
    Definition Classes
    OutPort
  17. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  19. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  20. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  21. def inputSide: Option[Input[A]]
    Definition Classes
    OutPort
  22. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  23. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  24. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  25. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  26. def owner: Self
  27. def pam[B](g: (B) => A): Output[B]

    alias for premap

    alias for premap

    Definition Classes
    Output
  28. def premap[C](g: (C) => A): Output[C]

    before passing value to output, apply g to one.

    before passing value to output, apply g to one.

    Definition Classes
    Output
  29. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  30. def toString(): String
    Definition Classes
    AnyRef → Any
  31. def unfold[S](s: S)(f: (S) => (S, A)): Unit
    Definition Classes
    Output
  32. var v: Output[A]
    Definition Classes
    OutPort
  33. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  34. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  35. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  36. def withOutputTimeouts(timeout: FiniteDuration): (Output[A], Input[FiniteDuration])

    provide pair from Output and Input (ready, timeouts) such that writing to ready will case writing to output and if it was not completed during timeout than appropriative duration will be availabe in timeouts input.

    provide pair from Output and Input (ready, timeouts) such that writing to ready will case writing to output and if it was not completed during timeout than appropriative duration will be availabe in timeouts input.

    val (chReady, chTimeouts) = ch withOutputTimeouts (5 seconds) select.forever { case x: chReady.write if (x==somethingToWrite) => Console.println(s" ${x} send") case t: chTimeouts.read => Console.println(s"timeout during writing") }

    Definition Classes
    Output
  37. macro def write(a: A): A

    'blocking' write of 'a' to channel.

    'blocking' write of 'a' to channel. Note, that this method can be called only inside 'go' or 'async' blocks.

    Definition Classes
    Output
  38. macro def writeAll[C <: Iterable[A]](it: C): Unit
    Definition Classes
    Output

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from (ReplicatedTransputer.this)#OutPort[A]

Inherited from Output[A]

Inherited from GopherAPIProvider

Inherited from AnyRef

Inherited from Any

Ungrouped