Package org.springframework.http.server.reactive

# Class ChannelSendOperator<T>

java.lang.Object
reactor.core.publisher.Mono<Void>
org.springframework.http.server.reactive.ChannelSendOperator<T>

Type Parameters:
  `T` - the type of element signaled

All Implemented Interfaces:
  `Publisher<Void>`, `reactor.core.CorePublisher<Void>`, `reactor.core.Scannable`

public class ChannelSendOperator<T> extends reactor.core.publisher.Mono<Void> implements reactor.core.Scannable
Given a write function that accepts a source `Publisher<T>` to write with and returns `Publisher<Void>` for the result, this operator helps to defer the invocation of the write function, until we know if the source publisher will begin publishing without an error. If the first emission is an error, the write function is bypassed, and the error is sent directly through the result publisher. Otherwise, the write function is invoked.

Since:
  5.0
Author:
  Rossen Stoyanchev, Stephane Maldini

## Nested Class Summary

## Nested classes/interfaces inherited from interface reactor.core.Scannable

`reactor.core.Scannable.Attr<T extends Object>`

## Field Summary

### Fields inherited from interface reactor.core.Scannable

`OPERATOR_NAME_UNRELATED_WORDS_PATTERN`

## Constructor Summary

Constructors
Constructor
Description
`ChannelSendOperator(Publisher<? extends T> source, Function<Publisher<T>,Publisher<Void>> writeFunction)`

## Method Summary

Modifier and Type
Method
Description
`Object`
`scanUnsafe(reactor.core.Scannable.Attr key)`
`void`
`subscribe(reactor.core.CoreSubscriber<? super Void> actual)`

### Methods inherited from class reactor.core.publisher.Mono

`and, as, block, block, blockOptional, blockOptional, cache, cache, cache, cache, cache, cacheInvalidateIf, cacheInvalidateWhen, cacheInvalidateWhen, cancelOn, cast, checkpoint, checkpoint, checkpoint, concatWith, contextCapture, contextWrite, contextWrite, create, defaultIfEmpty, defer, deferContextual, delay, delay, delayElement, delayElement, delaySubscription, delaySubscription, delaySubscription, delayUntil, dematerialize, doAfterTerminate, doFinally, doFirst, doOnCancel, doOnDiscard, doOnEach, doOnError, doOnError, doOnError, doOnNext, doOnRequest, doOnSubscribe, doOnSuccess, doOnTerminate, elapsed, elapsed, empty, error, error, expand, expand, expandDeep, expandDeep, filter, filterWhen, first, first, firstWithSignal, firstWithSignal, firstWithValue, firstWithValue, flatMap, flatMapIterable, flatMapMany, flatMapMany, flux, from, fromCallable, fromCompletionStage, fromCompletionStage, fromDirect, fromFuture, fromFuture, fromFuture, fromFuture, fromRunnable, fromSupplier, handle, hasElement, hide, ignoreElement, ignoreElements, just, justOrEmpty, justOrEmpty, log, log, log, log, log, log, map, mapNotNull, materialize, mergeWith, metrics, name, never, ofType, onAssembly, onErrorComplete, onErrorComplete, onErrorComplete, onErrorContinue, onErrorContinue, onErrorContinue, onErrorMap, onErrorMap, onErrorMap, onErrorResume, onErrorResume, onErrorResume, onErrorReturn, onErrorReturn, onErrorReturn, onErrorStop, onTerminateDetach, or, publish, publishOn, repeat, repeat, repeat, repeat, repeatWhen, repeatWhenEmpty, repeatWhenEmpty, retry, retry, retryWhen, sequenceEqual, sequenceEqual, sequenceEqual, share, single, singleOptional, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribeOn, subscribeWith, switchIfEmpty, tag, take, take, takeUntilOther, tap, tap, tap, then, then, thenEmpty, thenMany, thenReturn, timed, timed, timeout, timeout, timeout, timeout, timeout, timeout, timestamp, timestamp, toFuture, toString, transform, transformDeferred, transformDeferredContextual, using, using, using, using, usingWhen, usingWhen, when, when, whenDelayError, whenDelayError, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zipDelayError, zipDelayError, zipDelayError, zipDelayError, zipDelayError, zipDelayError, zipDelayError, zipDelayError, zipDelayError, zipWhen, zipWhen, zipWith, zipWith`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface reactor.core.Scannable

`actuals, inners, isScanAvailable, name, parents, scan, scanOrDefault, stepName, steps, tags, tagsDeduplicated`

## Constructor Details

### ChannelSendOperator

public ChannelSendOperator(Publisher<? extends T> source, Function<Publisher<T>,Publisher<Void>> writeFunction)

## Method Details

### scanUnsafe

@Nullable public Object scanUnsafe(reactor.core.Scannable.Attr key)

Specified by:
  `scanUnsafe` in interface `reactor.core.Scannable`

### subscribe

public void subscribe(reactor.core.CoreSubscriber<? super Void> actual)

Specified by:
  `subscribe` in interface `reactor.core.CorePublisher<T>`
Specified by:
  `subscribe` in class `reactor.core.publisher.Mono<Void>`