S
- the type of the message being sentR
- the type of the message being received.public interface MessageCodec<S,R>
Usually the event bus only allows a certain set of message types to be sent across the event bus, including primitive types,
boxed primitive types, byte[]
, JsonObject
, JsonArray
,
Buffer
.
By specifying a message codec you can pass any other type across the event bus, e.g. POJOs.
With a message codec the type sent does not have to be the same as the type received, e.g. you could send
a Buffer
and have it be received as a JsonObject
.
Instances of this class must be thread-safe as they may be used concurrently by different threads.
Modifier and Type | Method and Description |
---|---|
R |
decodeFromWire(int pos,
Buffer buffer)
Called by Vert.x when a message is decoded from the wire.
|
void |
encodeToWire(Buffer buffer,
S s)
Called by Vert.x when marshalling a message to the wire.
|
String |
name()
The codec name.
|
byte |
systemCodecID()
Used to identify system codecs.
|
R |
transform(S s)
If a message is sent locally across the event bus, this method is called to transform the message from
the sent type S to the received type R
|
void encodeToWire(Buffer buffer, S s)
buffer
- the message should be written into this buffers
- the message that is being sentR decodeFromWire(int pos, Buffer buffer)
pos
- the position in the buffer where the message should be read from.buffer
- the buffer to read the message fromR transform(S s)
s
- the sent messageString name()
byte systemCodecID()
Copyright © 2022 Eclipse. All rights reserved.