Class KafkaMessageEnvelope
- java.lang.Object
-
- org.apache.avro.specific.SpecificRecordBase
-
- com.linkedin.venice.kafka.protocol.KafkaMessageEnvelope
-
- All Implemented Interfaces:
java.io.Externalizable
,java.io.Serializable
,java.lang.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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description LeaderMetadata
leaderMetadataFooter
A optional footer that leader SN can use to give extra L/F related mete dataint
messageType
Using int because Avro Enums are not evolvable.java.lang.Object
payloadUnion
This contains the main payload of the message.ProducerMetadata
producerMetadata
ProducerMetadata contains information that the consumer can use to identify an upstream producer.static org.apache.avro.Schema
SCHEMA$
-
Constructor Summary
Constructors Constructor Description KafkaMessageEnvelope()
Default constructor.KafkaMessageEnvelope(java.lang.Integer messageType, ProducerMetadata producerMetadata, java.lang.Object payloadUnion, LeaderMetadata leaderMetadataFooter)
All-args constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
get(int field$)
static org.apache.avro.Schema
getClassSchema()
LeaderMetadata
getLeaderMetadataFooter()
Gets the value of the 'leaderMetadataFooter' field.int
getMessageType()
Gets the value of the 'messageType' field.java.lang.Object
getPayloadUnion()
Gets the value of the 'payloadUnion' field.ProducerMetadata
getProducerMetadata()
Gets the value of the 'producerMetadata' field.org.apache.avro.Schema
getSchema()
org.apache.avro.specific.SpecificData
getSpecificData()
void
put(int field$, java.lang.Object value$)
void
readExternal(java.io.ObjectInput in)
void
setLeaderMetadataFooter(LeaderMetadata value)
Sets the value of the 'leaderMetadataFooter' field.void
setMessageType(int value)
Sets the value of the 'messageType' field.void
setPayloadUnion(java.lang.Object value)
Sets the value of the 'payloadUnion' field.void
setProducerMetadata(ProducerMetadata value)
Sets the value of the 'producerMetadata' field.void
writeExternal(java.io.ObjectOutput out)
-
Methods inherited from class org.apache.avro.specific.SpecificRecordBase
compareTo, customDecode, customEncode, equals, get, getConversion, getConversion, hasCustomCoders, hashCode, put, toString
-
-
-
-
Field Detail
-
SCHEMA$
public static final org.apache.avro.Schema SCHEMA$
-
messageType
public int 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
public ProducerMetadata producerMetadata
ProducerMetadata contains information that the consumer can use to identify an upstream producer. This is common for all MessageType.
-
payloadUnion
public java.lang.Object 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
public LeaderMetadata leaderMetadataFooter
A optional footer that leader SN can use to give extra L/F related mete data
-
-
Constructor Detail
-
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(java.lang.Integer messageType, ProducerMetadata producerMetadata, java.lang.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 Detail
-
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
public java.lang.Object get(int field$)
- Specified by:
get
in interfaceorg.apache.avro.generic.IndexedRecord
- Specified by:
get
in classorg.apache.avro.specific.SpecificRecordBase
-
put
public void put(int field$, java.lang.Object value$)
- 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
public ProducerMetadata 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
public void setProducerMetadata(ProducerMetadata value)
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
public java.lang.Object 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
public void setPayloadUnion(java.lang.Object value)
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.
-
getLeaderMetadataFooter
public LeaderMetadata getLeaderMetadataFooter()
Gets the value of the 'leaderMetadataFooter' field.- Returns:
- A optional footer that leader SN can use to give extra L/F related mete data
-
setLeaderMetadataFooter
public void setLeaderMetadataFooter(LeaderMetadata value)
Sets the value of the 'leaderMetadataFooter' field. A optional footer that leader SN can use to give extra L/F related mete data- Parameters:
value
- the value to set.
-
writeExternal
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
- Specified by:
writeExternal
in interfacejava.io.Externalizable
- Overrides:
writeExternal
in classorg.apache.avro.specific.SpecificRecordBase
- Throws:
java.io.IOException
-
readExternal
public void readExternal(java.io.ObjectInput in) throws java.io.IOException
- Specified by:
readExternal
in interfacejava.io.Externalizable
- Overrides:
readExternal
in classorg.apache.avro.specific.SpecificRecordBase
- Throws:
java.io.IOException
-
-