@Override public ServerTransport serverTransport(ServiceTransport.Resources resources) { return new RSocketServerTransport( new ServiceMessageCodec(HeadersCodec.getInstance(DEFAULT_HEADERS_FORMAT)), ((Resources) resources).workerPool); }
private Payload toPayload(ServiceMessage message) { return messageCodec.encodeAndTransform(message, ByteBufPayload::create); } }
private ServiceMessage toMessage(Payload payload) { return messageCodec.decode(payload.sliceData(), payload.sliceMetadata()); }
ByteBuf headersBuffer = state.headersBuffer().retain(); ServiceMessage message = ServiceMessageCodec.decodeData( messageCodec.decode(dataBuffer, headersBuffer), dataType); timeContext.stop(); meter.mark();
/** * Given an address issues request-and-reply request to a remote address. * * @param request request message to send. * @param responseType type of response. * @param address of remote target service to invoke. * @return mono publisher completing with single response message or with error. */ public Mono<ServiceMessage> requestOne( ServiceMessage request, Class<?> responseType, Address address) { return Mono.defer( () -> { requireNonNull(address, "requestOne address parameter is required and must not be null"); return transport .create(address) .requestResponse(request) .map(message -> ServiceMessageCodec.decodeData(message, responseType)) .map(this::throwIfError); }); }
private ServiceMessage toMessage(Payload payload) { return messageCodec.decode(payload.sliceData(), payload.sliceMetadata()); }
/** * Given an address issues request-and-reply request to a remote address. * * @param request request message to send. * @param responseType type of response. * @param address of remote target service to invoke. * @return mono publisher completing with single response message or with error. */ public Mono<ServiceMessage> requestOne( ServiceMessage request, Class<?> responseType, Address address) { return Mono.defer( () -> { requireNonNull(address, "requestOne address parameter is required and must not be null"); return transport .create(address) .requestResponse(request) .map(message -> ServiceMessageCodec.decodeData(message, responseType)) .map(this::throwIfError); }); }
private Payload toPayload(ServiceMessage request) { return messageCodec.encodeAndTransform(request, ByteBufPayload::create); }
@Override public ServerTransport serverTransport(ServiceTransport.Resources resources) { return new RSocketServerTransport( new ServiceMessageCodec(HeadersCodec.getInstance(DEFAULT_HEADERS_FORMAT)), ((Resources) resources).workerPool); }
private ServiceMessage toMessage(Payload payload) { return messageCodec.decode(payload.sliceData(), payload.sliceMetadata()); }
/** * Given an address issues request to remote service which returns stream of service messages * back. * * @param request request with given headers. * @param responseType type of responses. * @param address of remote target service to invoke. * @return flux publisher of service responses. */ public Flux<ServiceMessage> requestMany( ServiceMessage request, Class<?> responseType, Address address) { return Flux.defer( () -> { requireNonNull(address, "requestMany address parameter is required and must not be null"); return transport .create(address) .requestStream(request) .map(message -> ServiceMessageCodec.decodeData(message, responseType)) .map(this::throwIfError); }); }
private Payload toPayload(ServiceMessage response) { return messageCodec.encodeAndTransform(response, ByteBufPayload::create); }
@Override public ClientTransport clientTransport(ServiceTransport.Resources resources) { return new RSocketClientTransport( new ServiceMessageCodec(HeadersCodec.getInstance(DEFAULT_HEADERS_FORMAT)), DelegatedLoopResources.newClientLoopResources(((Resources) resources).workerPool)); }
private ServiceMessage toMessage(Payload payload) { return messageCodec.decode(payload.sliceData(), payload.sliceMetadata()); }
/** * Given an address issues stream of service requests to service which returns stream of service * messages back. * * @param publisher of service requests. * @param responseType type of responses. * @param address of remote target service to invoke. * @return flux publisher of service responses. */ public Flux<ServiceMessage> requestBidirectional( Publisher<ServiceMessage> publisher, Class<?> responseType, Address address) { return Flux.defer( () -> { requireNonNull( address, "requestBidirectional address parameter is required and must not be null"); return transport .create(address) .requestChannel(publisher) .map(message -> ServiceMessageCodec.decodeData(message, responseType)) .map(this::throwIfError); }); }
private Payload toPayload(ServiceMessage request) { return messageCodec.encodeAndTransform(request, ByteBufPayload::create); }
@Override public ClientTransport clientTransport(ServiceTransport.Resources resources) { return new RSocketClientTransport( new ServiceMessageCodec(HeadersCodec.getInstance(DEFAULT_HEADERS_FORMAT)), DelegatedLoopResources.newClientLoopResources(((Resources) resources).workerPool)); }
private ServiceMessage toMessage(Payload payload) { return messageCodec.decode(payload.sliceData(), payload.sliceMetadata()); }
/** * Given an address issues request to remote service which returns stream of service messages * back. * * @param request request with given headers. * @param responseType type of responses. * @param address of remote target service to invoke. * @return flux publisher of service responses. */ public Flux<ServiceMessage> requestMany( ServiceMessage request, Class<?> responseType, Address address) { return Flux.defer( () -> { requireNonNull(address, "requestMany address parameter is required and must not be null"); return transport .create(address) .requestStream(request) .map(message -> ServiceMessageCodec.decodeData(message, responseType)) .map(this::throwIfError); }); }
private Payload toPayload(ServiceMessage response) { return messageCodec.encodeAndTransform(response, ByteBufPayload::create); }