Package bftsmart.consensus.messages
Class ConsensusMessage
- java.lang.Object
-
- bftsmart.communication.SystemMessage
-
- bftsmart.consensus.messages.ConsensusMessage
-
- All Implemented Interfaces:
java.io.Externalizable,java.io.Serializable
public class ConsensusMessage extends SystemMessage
This class represents a message used in a epoch of a consensus instance.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class bftsmart.communication.SystemMessage
authenticated, sender
-
-
Constructor Summary
Constructors Constructor Description ConsensusMessage()Creates a consensus message.ConsensusMessage(int type, int id, int epoch, int from)Creates a consensus message.ConsensusMessage(int paxosType, int id, int epoch, int from, byte[] value)Creates a consensus message.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetEpoch()Retrieves the epoch number to which this message belongsintgetNumber()Returns the consensus ID of this messagejava.lang.StringgetPaxosVerboseType()Returns this message type as a verbose stringjava.lang.ObjectgetProof()Returns the proof associated with a PROPOSE or COLLECT messageintgetType()Returns this message typebyte[]getValue()Retrieves the value contained in the message.voidreadExternal(java.io.ObjectInput in)voidsetProof(java.lang.Object proof)java.lang.StringtoString()voidwriteExternal(java.io.ObjectOutput out)-
Methods inherited from class bftsmart.communication.SystemMessage
getSender
-
-
-
-
Constructor Detail
-
ConsensusMessage
public ConsensusMessage()
Creates a consensus message. Not used. TODO: How about making it private?
-
ConsensusMessage
public ConsensusMessage(int paxosType, int id, int epoch, int from, byte[] value)Creates a consensus message. Used by the message factory to create a COLLECT or PROPOSE message TODO: How about removing the modifier, to make it visible just within the package?- Parameters:
paxosType- This should be MessageFactory.COLLECT or MessageFactory.PROPOSEid- Consensus's IDepoch- Epoch timestampfrom- This should be this process IDvalue- This should be null if its a COLLECT message, or the proposed value if it is a PROPOSE message
-
ConsensusMessage
public ConsensusMessage(int type, int id, int epoch, int from)Creates a consensus message. Used by the message factory to create a FREEZE message TODO: How about removing the modifier, to make it visible just within the package?- Parameters:
type- This should be MessageFactory.FREEZEid- Consensus's consensus IDepoch- Epoch timestampfrom- This should be this process ID
-
-
Method Detail
-
writeExternal
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException- Specified by:
writeExternalin interfacejava.io.Externalizable- Overrides:
writeExternalin classSystemMessage- Throws:
java.io.IOException
-
readExternal
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException- Specified by:
readExternalin interfacejava.io.Externalizable- Overrides:
readExternalin classSystemMessage- Throws:
java.io.IOExceptionjava.lang.ClassNotFoundException
-
getEpoch
public int getEpoch()
Retrieves the epoch number to which this message belongs- Returns:
- Epoch to which this message belongs
-
getValue
public byte[] getValue()
Retrieves the value contained in the message.- Returns:
- The value
-
setProof
public void setProof(java.lang.Object proof)
-
getProof
public java.lang.Object getProof()
Returns the proof associated with a PROPOSE or COLLECT message- Returns:
- The proof
-
getNumber
public int getNumber()
Returns the consensus ID of this message- Returns:
- Consensus ID of this message
-
getType
public int getType()
Returns this message type- Returns:
- This message type
-
getPaxosVerboseType
public java.lang.String getPaxosVerboseType()
Returns this message type as a verbose string- Returns:
- Message type
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-