Package io.vertx.core.eventbus
Interface MessageCodec<S,R>
-
- Type Parameters:
S
- the type of the message being sentR
- the type of the message being received.
- All Known Implementing Classes:
ServiceExceptionMessageCodec
public interface MessageCodec<S,R>
A message codec allows a custom message type to be marshalled across the event bus.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 aJsonObject
.Instances of this class must be thread-safe as they may be used concurrently by different threads.
- Author:
- Tim Fox
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method 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
-
-
-
Method Detail
-
encodeToWire
void encodeToWire(Buffer buffer, S s)
Called by Vert.x when marshalling a message to the wire.- Parameters:
buffer
- the message should be written into this buffers
- the message that is being sent
-
decodeFromWire
R decodeFromWire(int pos, Buffer buffer)
Called by Vert.x when a message is decoded from the wire.- Parameters:
pos
- the position in the buffer where the message should be read from.buffer
- the buffer to read the message from- Returns:
- the read message
-
transform
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- Parameters:
s
- the sent message- Returns:
- the transformed message
-
name
String name()
The codec name. Each codec must have a unique name. This is used to identify a codec when sending a message and for unregistering codecs.- Returns:
- the name
-
systemCodecID
byte systemCodecID()
Used to identify system codecs. Should always return -1 for a user codec.- Returns:
- -1 for a user codec.
-
-