Package org.apache.activemq.artemis.spi.core.protocol

## Class MessagePersister

- java.lang.Object
- - org.apache.activemq.artemis.spi.core.protocol.MessagePersister

- All Implemented Interfaces:
    `org.apache.activemq.artemis.core.persistence.Persister<Message>`

      public class MessagePersister
      extends java.lang.Object
      implements org.apache.activemq.artemis.core.persistence.Persister<Message>

- - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `MessagePersister()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | `clearPersisters()` |
    `Message` | `decode​(org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer, Message record, org.apache.activemq.artemis.core.persistence.CoreMessageObjectPools pools)` |
    `Message` | `decode​(org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer, Message record, org.apache.activemq.artemis.core.persistence.CoreMessageObjectPools pools, org.apache.activemq.artemis.core.persistence.StorageManager storageManager)` |
    `void` | `encode​(org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer, Message record)` | Sub classes must add the first short as the protocol-id
    `int` | `getEncodeSize​(Message record)` |
    `byte` | `getID()` |
    `static MessagePersister` | `getInstance()` |
    `static org.apache.activemq.artemis.core.persistence.Persister` | `getPersister​(byte id)` |
    `static void` | `registerPersister​(org.apache.activemq.artemis.core.persistence.Persister<Message> persister)` |
    `static void` | `registerProtocol​(ProtocolManagerFactory manager)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### MessagePersister

          protected MessagePersister()

  - ### Method Detail

    - #### getID

          public byte getID()

      Specified by:
        `getID` in interface `org.apache.activemq.artemis.core.persistence.Persister<Message>`

    - #### registerProtocol

          public static void registerProtocol​(ProtocolManagerFactory manager)

    - #### clearPersisters

          public static void clearPersisters()

    - #### getPersister

          public static org.apache.activemq.artemis.core.persistence.Persister getPersister​(byte id)

    - #### registerPersister

          public static void registerPersister​(org.apache.activemq.artemis.core.persistence.Persister<Message> persister)

    - #### getInstance

          public static MessagePersister getInstance()

    - #### getEncodeSize

          public int getEncodeSize​(Message record)

      Specified by:
        `getEncodeSize` in interface `org.apache.activemq.artemis.core.persistence.Persister<Message>`

    - #### encode

          public void encode​(org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer,
                             Message record)

      Sub classes must add the first short as the protocol-id
      Specified by:
        `encode` in interface `org.apache.activemq.artemis.core.persistence.Persister<Message>`

    - #### decode

          public Message decode​(org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer,
                                Message record,
                                org.apache.activemq.artemis.core.persistence.CoreMessageObjectPools pools)

      Specified by:
        `decode` in interface `org.apache.activemq.artemis.core.persistence.Persister<Message>`

    - #### decode

          public Message decode​(org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer,
                                Message record,
                                org.apache.activemq.artemis.core.persistence.CoreMessageObjectPools pools,
                                org.apache.activemq.artemis.core.persistence.StorageManager storageManager)