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
FieldsModifier and TypeFieldDescriptionA optional footer that leader SN can use to give extra L/F related mete dataintUsing 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
ConstructorsConstructorDescriptionDefault constructor.KafkaMessageEnvelope(Integer messageType, ProducerMetadata producerMetadata, Object payloadUnion, LeaderMetadata leaderMetadataFooter) All-args constructor. -
Method Summary
Modifier and TypeMethodDescriptionget(int field$) static org.apache.avro.SchemaGets the value of the 'leaderMetadataFooter' field.intGets the value of the 'messageType' field.Gets the value of the 'payloadUnion' field.Gets the value of the 'producerMetadata' field.org.apache.avro.Schemaorg.apache.avro.specific.SpecificDatavoidvoidvoidSets the value of the 'leaderMetadataFooter' field.voidsetMessageType(int value) Sets the value of the 'messageType' field.voidsetPayloadUnion(Object value) Sets the value of the 'payloadUnion' field.voidSets the value of the 'producerMetadata' field.voidMethods inherited from class org.apache.avro.specific.SpecificRecordBase
compareTo, customDecode, customEncode, equals, get, getConversion, getConversion, hasCustomCoders, hashCode, put, toStringMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods 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:
getSpecificDatain classorg.apache.avro.specific.SpecificRecordBase
-
getSchema
public org.apache.avro.Schema getSchema()- Specified by:
getSchemain interfaceorg.apache.avro.generic.GenericContainer- Specified by:
getSchemain classorg.apache.avro.specific.SpecificRecordBase
-
get
- Specified by:
getin interfaceorg.apache.avro.generic.IndexedRecord- Specified by:
getin classorg.apache.avro.specific.SpecificRecordBase
-
put
- Specified by:
putin interfaceorg.apache.avro.generic.IndexedRecord- Specified by:
putin 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:
writeExternalin interfaceExternalizable- Overrides:
writeExternalin classorg.apache.avro.specific.SpecificRecordBase- Throws:
IOException
-
readExternal
- Specified by:
readExternalin interfaceExternalizable- Overrides:
readExternalin classorg.apache.avro.specific.SpecificRecordBase- Throws:
IOException
-