Class

colossus.streaming

BufferedPipe

Related Doc: package streaming

Permalink

class BufferedPipe[T] extends Pipe[T, T]

A pipe backed by a fixed-length buffer. Items can be pushed into the buffer until it fills, at which point the Full PushResult is returned. When items are pulled out of the pipe the signal return in the Full result is fired.

The most efficient way to use a BufferedPipe is with the pullWhile method. This allows the pipe to completely bypass buffering and items pushed to the pipe are fast-tracked directly into the provided processing function.

Linear Supertypes
Pipe[T, T], Source[T], Sink[T], Transport, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BufferedPipe
  2. Pipe
  3. Source
  4. Sink
  5. Transport
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new BufferedPipe(size: Int)

    Permalink

Type Members

  1. case class Dead(reason: Throwable) extends State with Product with Serializable

    Permalink
  2. case class PullFastTrack(fn: (T) ⇒ PullAction, onComplete: (TerminalPullResult) ⇒ Any) extends PushableState with Product with Serializable

    Permalink
  3. sealed trait PushableState extends State

    Permalink
  4. sealed trait State 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. def ++[U >: T](next: Source[U]): Source[U]

    Permalink
    Definition Classes
    Source
  4. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  5. object Active extends PushableState with Product with Serializable

    Permalink
  6. object Closed extends State with Product with Serializable

    Permalink
  7. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  8. def canPullNonEmpty: Boolean

    Permalink
    Definition Classes
    Source
  9. def canPush: Boolean

    Permalink
    Definition Classes
    Sink
  10. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  11. def collected: Callback[Iterator[T]]

    Permalink
    Definition Classes
    Source
  12. def complete(): Try[Unit]

    Permalink
    Definition Classes
    BufferedPipeSink
  13. final def eq(arg0: AnyRef): Boolean

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

    Permalink
    Definition Classes
    AnyRef → Any
  15. def filterScan(f: (T) ⇒ Boolean): Unit

    Permalink

    Iterate through all buffered items, removing any where the provided function returns true

  16. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  17. def fold[U](init: U)(cb: (T, U) ⇒ U): Callback[U]

    Permalink
    Definition Classes
    Source
  18. def foldWhile[U](init: U)(cb: (T, U) ⇒ U)(f: (U) ⇒ Boolean): Callback[U]

    Permalink
    Definition Classes
    Source
  19. final def getClass(): Class[_]

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

    Permalink
    Definition Classes
    AnyRef → Any
  21. def head: T

    Permalink
  22. def inputState: TransportState

    Permalink
    Definition Classes
    BufferedPipeSink
  23. def into[X >: T](sink: Sink[X]): Unit

    Permalink
    Definition Classes
    Source
  24. def into[X >: T](sink: Sink[X], linkClosed: Boolean, linkTerminated: Boolean)(onComplete: (NonOpenTransportState) ⇒ Any): Unit

    Permalink

    Link this source to a sink.

    Link this source to a sink. Items will be pulled from the source and pushed to the sink, respecting backpressure, until either the source is closed or an error occurs. The linkClosed and linkTerminated parameters determine whether to propagate closure/termination of this Source to the linked Sink. However if the sink is closed or terminated first, this source will be terminated.

    sink

    The sink to link to this source

    linkClosed

    if true, the linked sink will be closed when this source is closed

    linkTerminated

    if true, the linked sink will be terminated when this source is terminated

    Definition Classes
    Source
  25. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  26. def length: Int

    Permalink
  27. def mapIn[A](f: (A) ⇒ T): Sink[A]

    Permalink
    Definition Classes
    Sink
  28. final def ne(arg0: AnyRef): Boolean

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

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

    Permalink
    Definition Classes
    AnyRef
  31. def outputState: TransportState

    Permalink
    Definition Classes
    BufferedPipeSource
  32. def peek: PullResult[T]

    Permalink
    Definition Classes
    BufferedPipeSource
  33. def pull(): PullResult[T]

    Permalink

    Pull the next item from the Source if available.

    Pull the next item from the Source if available. The returned PullResult will indicate whether an item was successfully pulled.

    Definition Classes
    BufferedPipeSource
  34. def pull(whenReady: (Try[Option[T]]) ⇒ Unit): Unit

    Permalink
    Definition Classes
    Source
  35. def pullCB(): Callback[Option[T]]

    Permalink
    Definition Classes
    Source
  36. def pullUntilNull(fn: (T) ⇒ Boolean): Option[NullPullResult]

    Permalink

    Pull until either the supplied function returns false or there are no more items immediately available to pull, in which case a Some[NullPullResult] is returned indicating why the loop stopped.

    Pull until either the supplied function returns false or there are no more items immediately available to pull, in which case a Some[NullPullResult] is returned indicating why the loop stopped.

    Definition Classes
    BufferedPipeSource
  37. def pullWhile(fn: (T) ⇒ PullAction, onComplete: (TerminalPullResult) ⇒ Any): Unit

    Permalink

    Repeatedly pull items out of a pipe, even if items are not immediately available.

    Repeatedly pull items out of a pipe, even if items are not immediately available. The Source will hold onto the given processing function and immediately forward items into it as they become available. The returned PullAction determines how the Source will proceed with the next item. If PullContinue or Wait are returned, the Source will hold onto the processing function for either when the next item is available or when the returned Signal is fired. onComplete is only called if the Source is closed or terminated while the processing function is in use.

    When Wait is returned, the item that was passed into the processing function is _not_ pulled from the source. Thus when the returned signal is fired and processing resumes, the same item will be passed to the processing function.

    This method is generally intended for linking the output of a Source to the input of a Sink. For a simplified version of this functionality, see Source.into.

    Definition Classes
    BufferedPipeSource
  38. def push(item: T): PushResult

    Permalink

    Attempt to push a value into the pipe.

    Attempt to push a value into the pipe.

    The value will only be successfully pushed only if there has already a been a request for data on the pulling side. In other words, the pipe will never interally queue a value.

    returns

    the result of the push

    Definition Classes
    BufferedPipeSink
  39. def pushPeek: PushResult

    Permalink
    Definition Classes
    BufferedPipeSink
  40. def reduce[U >: T](reducer: (U, U) ⇒ U): Callback[U]

    Permalink
    Definition Classes
    Source
  41. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  42. def terminate(reason: Throwable): Unit

    Permalink

    Immediately terminate the transport, permenantly putting it into an error state

    Immediately terminate the transport, permenantly putting it into an error state

    Definition Classes
    BufferedPipeTransport
  43. def toString(): String

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

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  47. def weld[U >: T, T](next: Pipe[U, T]): Pipe[T, T]

    Permalink
    Definition Classes
    Pipe

Inherited from Pipe[T, T]

Inherited from Source[T]

Inherited from Sink[T]

Inherited from Transport

Inherited from AnyRef

Inherited from Any

Ungrouped