Class ReplicationMsg

java.lang.Object
org.opends.server.replication.protocol.ReplicationMsg
Direct Known Subclasses:
ChangeStatusMsg, ChangeTimeHeartbeatMsg, ExtendedStartMsg, HeartbeatMsg, InitializationMsg, MonitorMsg, MonitorRequestMsg, ResetGenerationIdMsg, StartMsg, StartSessionMsg, StopEncryptionMsg, StopMsg, TopologyMsg, UpdateMsg, WindowMsg, WindowProbeMsg

public abstract class ReplicationMsg extends Object
Abstract class that must be used when defining messages that can be sent for replication purpose between servers. When extending this class one should also create a new MSG_TYPE and should update the generateMsg() method.
  • Field Details

    • MSG_TYPE_DISK_ENCODING

      public static final byte MSG_TYPE_DISK_ENCODING
      Reserved type for uses other than protocol messages.
      See Also:
    • COMPACT_MASK

      public static final byte COMPACT_MASK
      Bitmask used to detect compact encoding of message stored in ReplicationDomainDB.
      See Also:
    • COMPACT_TYPE_MODIFY

      public static final byte COMPACT_TYPE_MODIFY
      Type used by compact representation of a ModifyMsg stored in a ReplicationDomainDB.
      See Also:
    • COMPACT_TYPE_ADD

      public static final byte COMPACT_TYPE_ADD
      Type used by compact representation of a AddMsg stored in a ReplicationDomainDB.
      See Also:
    • COMPACT_TYPE_DELETE

      public static final byte COMPACT_TYPE_DELETE
      Type used by compact representation of a DeleteMsg stored in a ReplicationDomainDB.
      See Also:
    • COMPACT_TYPE_MODIFY_DN

      public static final byte COMPACT_TYPE_MODIFY_DN
      Type used by compact representation of a ModifyDNMsg stored in a ReplicationDomainDB.
      See Also:
    • COMPACT_TYPE_REPLICA_OFFLINE

      public static final byte COMPACT_TYPE_REPLICA_OFFLINE
      Type used by compact representation of a ReplicaOfflineMsg stored in a ReplicationDomainDB.
      See Also:
  • Constructor Details

    • ReplicationMsg

      protected ReplicationMsg()
      Protected constructor.
  • Method Details

    • 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.
    • isRetryable

      public boolean isRetryable()
      Returns if in case of I/O error we should try to send this message again.
      Returns:
      if in case of I/O error we should try to send this message again
    • decodeMsg

      public static ReplicationMsg decodeMsg(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.