class OneOneBuf[T] extends N2NBuf[T]
A general-purpose shared buffered channel, bounded by size
if it is positive,
and unbounded otherwise.
The buffer can be shared by any number of readers and writers simultaneously, and (unlike OneOne channel) there is no dynamic check for reader-overtaking (more than a single process trying to read simultaneously) or writer overtaking.
It closes completely after closeIn
has been invoked,
or after closeOut
has been invoked and the buffer is empty.
- T
type of value transmitted by the buffer
- Alphabetic
- By Inheritance
- OneOneBuf
- N2NBuf
- SharedChan
- SharedInPort
- SharedOutPort
- Chan
- Debuggable
- Named
- OutPort
- InPort
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
OneOneBuf(size: Int, name: String)
- size
buffer is bounded by
size
if it is strictly positive, else unbounded- name
name (for the debugger)
Value Members
-
def
!(value: T): Unit
Output
value
to the port's channel. -
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
?[U](f: (T) ⇒ U): U
Block until a value t is available for input, then return
f(
t)
-- equivalent tof(?())
. -
def
?(): T
Block until a value is available for input, then read and return it.
-
def
??[U](f: (T) ⇒ U): U
Block until a value t is available for input, then return
f(
t)
.Block until a value t is available for input, then return
f(
t)
. If the inport is provided by a synchronized channel then synchronisation with the termination of the sender's!
is at the termination of the computation off(
t)
(this is sometimes called an extended rendezvous). -
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
canInput: Boolean
Returns
false
if no further input will be supplied by this port. -
def
canOutput: Boolean
Returns
false
if no further output can be accepted by this port. -
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
close(): Unit
Signal that the channel is to be closed forthwith
-
def
closeIn(): Unit
Signal that no further attempts will be made to input from the invoking thread: idempotent
-
def
closeOut(): Unit
Signal that no further values will be output from the invoking thread: idempotent
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
finishedRW: String
Intelligible information about finished reads and writes
Intelligible information about finished reads and writes
- Definition Classes
- N2NBuf
- Annotations
- @elidable( FINEST )
-
def
finishedRead: Long
Increment count of finished reads
Increment count of finished reads
- Definition Classes
- N2NBuf
- Annotations
- @elidable( FINEST )
-
def
finishedWrite: Long
Increment count of finished writes
Increment count of finished writes
- Definition Classes
- N2NBuf
- Annotations
- @elidable( FINEST )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
getWaiting: Seq[Thread]
Return a sequence of the threads currently waiting for this object, if any.
Return a sequence of the threads currently waiting for this object, if any. Default is the empty sequence.
- Definition Classes
- Debuggable
-
def
hasState: Boolean
This object has a state worth showing right now: false if showState will do no output.
This object has a state worth showing right now: false if showState will do no output.
- Definition Classes
- Debuggable
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
def
inPortEvent(portState: PortState): Unit
The channel has just changed its state in a way that will affect
inPortState
The channel has just changed its state in a way that will affect
inPortState
- Definition Classes
- Chan
-
def
inPortState: PortState
Current state of this port: for alternation implementations
-
def
isEmpty: Boolean
- Definition Classes
- N2NBuf
- Annotations
- @inline()
-
def
isFull: Boolean
- Definition Classes
- N2NBuf
- Annotations
- @inline()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
val
key: StateKey
This object's key in the registry (if non-negative)
This object's key in the registry (if non-negative)
- Definition Classes
- Debuggable
-
def
name: String
Return the name of the object
Return the name of the object
- Definition Classes
- Named
-
def
nameGenerator: NameGenerator
Discover the name generator
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
nothing: T
The null value for this port -- equivalent to
null.asInstanceOf[T]
.The null value for this port -- equivalent to
null.asInstanceOf[T]
. Useful to initialise variables that will in due course be assigned values by reading from the port.- Definition Classes
- InPort
- Annotations
- @inline()
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
outPortEvent(portState: PortState): Unit
The channel has just changed its state in a way that will affect
outPortState
The channel has just changed its state in a way that will affect
outPortState
- Definition Classes
- Chan
-
def
outPortState: PortState
Current state of this port: for alternation implementations
-
def
readBefore(nsWait: basis.Nanoseconds): Option[T]
Block until the earlier of the following events happens:
-
val
reads: AtomicLong
Count oof the number of finished reads (writes)
Count oof the number of finished reads (writes)
- Definition Classes
- N2NBuf
-
def
register(): Unit
Register this object
Register this object
- Definition Classes
- Debuggable
-
def
setName(name: String): Unit
Set the name using the name generator
Set the name using the name generator
- Definition Classes
- Named
-
def
showState(out: PrintWriter): Unit
Show the current state of this object: default uses
toString
Show the current state of this object: default uses
toString
- Definition Classes
- N2NBuf → Debuggable
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- def toString(): String
-
def
unregister(): Unit
Unregister this object
Unregister this object
- Definition Classes
- Debuggable
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
withDebugger[T](condition: Boolean)(body: ⇒ T): T
Conditionally
register
this object with the debugger only for the duration of the evaluation ofbody
.Conditionally
register
this object with the debugger only for the duration of the evaluation ofbody
. To be used as a last resort for the exasperated CSO toolkit debugger.- Definition Classes
- Debuggable
-
def
withName(__name: String): Chan[T]
Set the name of this object and return it
Set the name of this object and return it
- Definition Classes
- Named
-
def
writeBefore(nsWait: Long)(value: T): Boolean
Output
value
to the port's channel beforensWait
has elapsed, and return true; or return false -
val
writes: AtomicLong
Count oof the number of finished reads (writes)
Count oof the number of finished reads (writes)
- Definition Classes
- N2NBuf