public class ProtobufEncoder extends ProtobufCodecSupport implements HttpMessageEncoder<com.google.protobuf.Message>
Message
を書き込む Encoder
。Flux は、メッセージ自体の前に指定された各メッセージのサイズで区切られた Protobuf メッセージを使用して直列化されます。単一の値は、通常の Protobuf メッセージ形式を使用して直列化されます(メッセージの前にサイズが追加されることはありません)。
Message
Java クラスを生成するには、protoc
バイナリをインストールする必要があります。
このエンコーダーには Protobuf 3 以降が必要で、公式 "com.google.protobuf:protobuf-java"
ライブラリで "application/x-protobuf"
および "application/octet-stream"
をサポートしています。
ProtobufDecoder
コンストラクターと説明 |
---|
ProtobufEncoder() |
修飾子と型 | メソッドと説明 |
---|---|
boolean | canEncode(ResolvableType elementType, MimeType mimeType) エンコーダが特定のソース要素型と出力ストリームの MIME 型をサポートするかどうか。 |
reactor.core.publisher.Flux<DataBuffer> | encode(Publisher<? extends com.google.protobuf.Message> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, MimeType mimeType, MapSE<StringSE, ObjectSE> hints) 型 T のオブジェクトのストリームを DataBuffer 出力ストリームにエンコードします。 |
DataBuffer | encodeValue(com.google.protobuf.Message message, DataBufferFactory bufferFactory, ResolvableType valueType, MimeType mimeType, MapSE<StringSE, ObjectSE> hints) 型 T のオブジェクトをデータバッファにエンコードします。 |
ListSE<MimeType> | getEncodableMimeTypes() このエンコーダーでサポートされている MIME 型のリストを返します。 |
ListSE<MediaType> | getStreamingMediaTypes() 入力ストリームの最後で自動的にフラッシュを実行する必要がある「ストリーミング」メディア型を返します。 |
getMimeTypes, supportsMimeType
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
getEncodeHints
getEncodableMimeTypes
public boolean canEncode(ResolvableType elementType, @Nullable MimeType mimeType)
Encoder
public reactor.core.publisher.Flux<DataBuffer> encode(Publisher<? extends com.google.protobuf.Message> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable MapSE<StringSE,ObjectSE> hints)
Encoder
T
のオブジェクトのストリームを DataBuffer
出力ストリームにエンコードします。Encoder<com.google.protobuf.Message>
の encode
inputStream
- エンコードするオブジェクトの入力ストリーム。入力を要素のストリームとしてではなく単一の値としてエンコードする必要がある場合は、Mono
のインスタンスを使用する必要があります。bufferFactory
- 出力ストリーム DataBuffer
を作成するための elementType
- 入力ストリーム内の要素の予想される型。この型は、事前に Encoder.canEncode(org.springframework.core.ResolvableType, org.springframework.util.MimeType)
メソッドに渡されていなければならず、true
を返さなければなりません。mimeType
- 出力コンテンツの MIME 型 (オプション)hints
- エンコード方法に関する追加情報 public DataBuffer encodeValue(com.google.protobuf.Message message, DataBufferFactory bufferFactory, ResolvableType valueType, @Nullable MimeType mimeType, @Nullable MapSE<StringSE,ObjectSE> hints)
Encoder
デフォルトでは、このメソッドは UnsupportedOperationException
SE を発生させ、一部のエンコーダーは単一のバッファーを作成できないか、同期的に作成できないことが予想されます(例: Resource
のエンコード)。
Encoder<com.google.protobuf.Message>
の encodeValue
message
- エンコードされる値 bufferFactory
- 出力 DataBuffer
を作成するため valueType
- エンコードされる値の型 mimeType
- 出力コンテンツの MIME 型 (オプション)hints
- エンコード方法に関する追加情報 public ListSE<MediaType> getStreamingMediaTypes()
HttpMessageEncoder
HttpMessageEncoder<com.google.protobuf.Message>
の getStreamingMediaTypes
public ListSE<MimeType> getEncodableMimeTypes()
Encoder
canEncode(elementType, null)
を介して保護する必要があります。このリストでは、特定の要素型でのみサポートされている MIME 型を除外することもできます。または、Encoder.getEncodableMimeTypes(ResolvableType)
を使用してより正確なリストを作成します。Encoder<com.google.protobuf.Message>
の getEncodableMimeTypes