Class KafkaMessageEnvelope
java.lang.Object
org.apache.avro.specific.SpecificRecordBase
com.linkedin.venice.kafka.protocol.KafkaMessageEnvelope
- All Implemented Interfaces:
Externalizable
,Serializable
,Comparable<org.apache.avro.specific.SpecificRecord>
,org.apache.avro.generic.GenericContainer
,org.apache.avro.generic.GenericRecord
,org.apache.avro.generic.IndexedRecord
,org.apache.avro.specific.SpecificRecord
public class KafkaMessageEnvelope
extends org.apache.avro.specific.SpecificRecordBase
implements org.apache.avro.specific.SpecificRecord
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionA optional footer that leader SN can use to give extra L/F related mete dataint
Using int because Avro Enums are not evolvable.This contains the main payload of the message.ProducerMetadata contains information that the consumer can use to identify an upstream producer.static final org.apache.avro.Schema
-
Constructor Summary
ConstructorDescriptionDefault constructor.KafkaMessageEnvelope
(Integer messageType, ProducerMetadata producerMetadata, Object payloadUnion, LeaderMetadata leaderMetadataFooter) All-args constructor. -
Method Summary
Modifier and TypeMethodDescriptionget
(int field$) static org.apache.avro.Schema
Gets the value of the 'leaderMetadataFooter' field.int
Gets the value of the 'messageType' field.Gets the value of the 'payloadUnion' field.Gets the value of the 'producerMetadata' field.org.apache.avro.Schema
org.apache.avro.specific.SpecificData
void
void
void
Sets the value of the 'leaderMetadataFooter' field.void
setMessageType
(int value) Sets the value of the 'messageType' field.void
setPayloadUnion
(Object value) Sets the value of the 'payloadUnion' field.void
Sets the value of the 'producerMetadata' field.void
Methods inherited from class org.apache.avro.specific.SpecificRecordBase
compareTo, customDecode, customEncode, equals, get, getConversion, getConversion, hasCustomCoders, hashCode, put, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.avro.generic.GenericRecord
hasField
-
Field Details
-
SCHEMA$
public static final org.apache.avro.Schema SCHEMA$ -
messageType
public int messageTypeUsing int because Avro Enums are not evolvable. Readers should always handle the 'unknown' value edge case, to account for future evolutions of this protocol. The mapping is the following: 0 => Put, 1 => Delete, 2 => ControlMessage, 3 => Update. -
producerMetadata
ProducerMetadata contains information that the consumer can use to identify an upstream producer. This is common for all MessageType. -
payloadUnion
This contains the main payload of the message. Which branch of the union is present is based on the previously-defined MessageType field.
-
-
Constructor Details
-
KafkaMessageEnvelope
public KafkaMessageEnvelope()Default constructor. Note that this does not initialize fields to their default values from the schema. If that is desired then one should usenewBuilder()
. -
KafkaMessageEnvelope
public KafkaMessageEnvelope(Integer messageType, ProducerMetadata producerMetadata, Object payloadUnion, LeaderMetadata leaderMetadataFooter) All-args constructor.- Parameters:
messageType
- Using int because Avro Enums are not evolvable. Readers should always handle the 'unknown' value edge case, to account for future evolutions of this protocol. The mapping is the following: 0 => Put, 1 => Delete, 2 => ControlMessage, 3 => Update.producerMetadata
- ProducerMetadata contains information that the consumer can use to identify an upstream producer. This is common for all MessageType.payloadUnion
- This contains the main payload of the message. Which branch of the union is present is based on the previously-defined MessageType field.leaderMetadataFooter
- A optional footer that leader SN can use to give extra L/F related mete data
-
-
Method Details
-
getClassSchema
public static org.apache.avro.Schema getClassSchema() -
getSpecificData
public org.apache.avro.specific.SpecificData getSpecificData()- Overrides:
getSpecificData
in classorg.apache.avro.specific.SpecificRecordBase
-
getSchema
public org.apache.avro.Schema getSchema()- Specified by:
getSchema
in interfaceorg.apache.avro.generic.GenericContainer
- Specified by:
getSchema
in classorg.apache.avro.specific.SpecificRecordBase
-
get
- Specified by:
get
in interfaceorg.apache.avro.generic.IndexedRecord
- Specified by:
get
in classorg.apache.avro.specific.SpecificRecordBase
-
put
- Specified by:
put
in interfaceorg.apache.avro.generic.IndexedRecord
- Specified by:
put
in classorg.apache.avro.specific.SpecificRecordBase
-
getMessageType
public int getMessageType()Gets the value of the 'messageType' field.- Returns:
- Using int because Avro Enums are not evolvable. Readers should always handle the 'unknown' value edge case, to account for future evolutions of this protocol. The mapping is the following: 0 => Put, 1 => Delete, 2 => ControlMessage, 3 => Update.
-
setMessageType
public void setMessageType(int value) Sets the value of the 'messageType' field. Using int because Avro Enums are not evolvable. Readers should always handle the 'unknown' value edge case, to account for future evolutions of this protocol. The mapping is the following: 0 => Put, 1 => Delete, 2 => ControlMessage, 3 => Update.- Parameters:
value
- the value to set.
-
getProducerMetadata
Gets the value of the 'producerMetadata' field.- Returns:
- ProducerMetadata contains information that the consumer can use to identify an upstream producer. This is common for all MessageType.
-
setProducerMetadata
Sets the value of the 'producerMetadata' field. ProducerMetadata contains information that the consumer can use to identify an upstream producer. This is common for all MessageType.- Parameters:
value
- the value to set.
-
getPayloadUnion
Gets the value of the 'payloadUnion' field.- Returns:
- This contains the main payload of the message. Which branch of the union is present is based on the previously-defined MessageType field.
-
setPayloadUnion
Sets the value of the 'payloadUnion' field. This contains the main payload of the message. Which branch of the union is present is based on the previously-defined MessageType field.- Parameters:
value
- the value to set.
-
writeExternal
- Specified by:
writeExternal
in interfaceExternalizable
- Overrides:
writeExternal
in classorg.apache.avro.specific.SpecificRecordBase
- Throws:
IOException
-
readExternal
- Specified by:
readExternal
in interfaceExternalizable
- Overrides:
readExternal
in classorg.apache.avro.specific.SpecificRecordBase
- Throws:
IOException
-