GRPC Objective-C  1.71.0
Class Methods
GRXBufferedPipe Class Reference

A buffered pipe is a Writer that also acts as a Writeable. More...

#import <GRXBufferedPipe.h>

Class Methods

(instancetype) + pipe
 Convenience constructor. More...
 
- Class Methods inherited from GRXWriter
(instancetype) + writerWithEnumerator:
 Returns a writer that pulls values from the passed NSEnumerator instance and pushes them to its writeable. More...
 
(instancetype) + writerWithValueSupplier:
 Returns a writer that pushes to its writeable the successive values returned by the passed block. More...
 
(instancetype) + writerWithContainer:
 Returns a writer that iterates over the values of the passed container and pushes them to its writeable. More...
 
(instancetype) + writerWithValue:
 Returns a writer that sends the passed value to its writeable and then finishes (releasing the value). More...
 
(instancetype) + writerWithError:
 Returns a writer that, as part of its start method, sends the passed error to the writeable (then releasing the error). More...
 
(instancetype) + emptyWriter
 Returns a writer that, as part of its start method, finishes immediately without sending any values to its writeable. More...
 

Additional Inherited Members

- Instance Methods inherited from GRXWriter
(void) - startWithWriteable:
 Transition to the Started state, and start sending messages to the writeable (a reference to it is retained). More...
 
(void) - finishWithError:
 Send writesFinishedWithError:errorOrNil to the writeable. More...
 
(GRXWriter *) - map:
 Returns a writer that wraps the receiver, and has all the values the receiver would write transformed by the provided mapping function. More...
 
- Instance Methods inherited from <GRXWriteable>
(void) - writeValue:
 Push the next value of the sequence to the receiving object. More...
 
(void) - writesFinishedWithError:
 Signal that the sequence is completed, or that an error occurred. More...
 
- Properties inherited from GRXWriter
GRXWriterState state
 This property can be used to query the current state of the writer, which determines how it might currently use its writeable. More...
 

Detailed Description

A buffered pipe is a Writer that also acts as a Writeable.

Once it is started, whatever values are written into it (via -writeValue:) will be propagated immediately, unless flow control prevents it. If it is throttled and keeps receiving values, as well as if it receives values before being started, it will buffer them and propagate them in order as soon as its state becomes Started. If it receives an end of stream (via -writesFinishedWithError:), it will buffer the EOS after the last buffered value and issue it to the writeable after all buffered values are issued.

Beware that a pipe of this type can't prevent receiving more values when it is paused (for example if used to write data to a congested network connection). Because in such situations the pipe will keep buffering all data written to it, your application could run out of memory and crash. If you want to react to flow control signals to prevent that, instead of using this class you can implement an object that conforms to GRXWriter.

Thread-safety: the methods of this class are thread-safe.

Method Documentation

◆ pipe

+ (instancetype) pipe

Convenience constructor.


The documentation for this class was generated from the following file: