Class ReplicationMsg

    • Field Detail

      • MSG_TYPE_DISK_ENCODING

        public static final byte MSG_TYPE_DISK_ENCODING
        Reserved type for uses other than protocol messages.
        See Also:
        Constant Field Values
    • Constructor Detail

      • ReplicationMsg

        protected ReplicationMsg()
        Protected constructor.
    • Method Detail

      • getBytes

        public abstract byte[] getBytes​(short protocolVersion)
        Serializes the PDU using the provided replication protocol version. WARNING: should be overwritten by a PDU (sub class) we want to support older protocol version serialization for.
        Parameters:
        protocolVersion - The protocol version to use for serialization. The version should normally be older than the current one.
        Returns:
        The encoded PDU, or null if the message isn't supported in that protocol version.
      • isEncodableFor

        public boolean isEncodableFor​(short protocolVersion)
        Whether this message has an encoding for a peer which negotiated the provided replication protocol version.

        A message which has none is dropped by Session.publish(ReplicationMsg) - its getBytes(short) returns null - with nothing on the wire and nothing in the log, so a caller which goes on to report what the peer was told must ask this before it publishes.

        Parameters:
        protocolVersion - The protocol version negotiated with the peer.
        Returns:
        true if this message can be encoded for that version, false if it has no encoding for it at all.
      • generateMsg

        public static ReplicationMsg generateMsg​(byte[] buffer,
                                                 short protocolVersion)
                                          throws DataFormatException,
                                                 NotSupportedOldVersionPDUException
        Generates a ReplicationMsg from its encoded form. This un-serialization is done taking into account the various supported replication protocol versions.
        Parameters:
        buffer - The encode form of the ReplicationMsg.
        protocolVersion - The version to use to decode the msg.
        Returns:
        The generated SynchronizationMessage.
        Throws:
        DataFormatException - If the encoded form was not a valid msg.
        NotSupportedOldVersionPDUException - If the PDU is part of an old protocol version and we do not support it.