// Path: src/main/java/org/sharedmq/primitives/MappedByteArrayStorageKey.java
// public class MappedByteArrayStorageKey {
// 
//     private final int segmentNumber;
//     private final int recordNumber;
//     private final long recordId;
// 
//     public MappedByteArrayStorageKey(int segmentNumber, int recordNumber, long recordId) {
//         this.segmentNumber = segmentNumber;
//         this.recordNumber = recordNumber;
//         this.recordId = recordId;
//     }
// 
//     /**
//      * The number of segment where record is stored.
//      */
//     public int getSegmentNumber() {
//         return segmentNumber;
//     }
// 
//     /**
//      * The number of record with segment.
//      */
//     public int getRecordNumber() {
//         return recordNumber;
//     }
// 
//     /**
//      * The unique identifier of the stored byte array.<br/>
//      * Records within segment are reusable,
//      * so we need an additional key to check that this key belongs to the stored byte array.
//      */
//     public long getRecordId() {
//         return recordId;
//     }
// }


import org.sharedmq.primitives.MappedByteArrayStorageKey;
package org.sharedmq.internals;


/**
 * This class contains message properties and references.
 */
public class MessageHeader {
    private final long messageId;
    private final int messageNumber;

    private long sentTime;
    private long delay;
    private Long receivedTime;

    private int heapIndex;
// Path: src/main/java/org/sharedmq/primitives/MappedByteArrayStorageKey.java
// public class MappedByteArrayStorageKey {
// 
//     private final int segmentNumber;
//     private final int recordNumber;
//     private final long recordId;
// 
//     public MappedByteArrayStorageKey(int segmentNumber, int recordNumber, long recordId) {
//         this.segmentNumber = segmentNumber;
//         this.recordNumber = recordNumber;
//         this.recordId = recordId;
//     }
// 
//     /**
//      * The number of segment where record is stored.
//      */
//     public int getSegmentNumber() {
//         return segmentNumber;
//     }
// 
//     /**
//      * The number of record with segment.
//      */
//     public int getRecordNumber() {
//         return recordNumber;
//     }
// 
//     /**
//      * The unique identifier of the stored byte array.<br/>
//      * Records within segment are reusable,
//      * so we need an additional key to check that this key belongs to the stored byte array.
//      */
//     public long getRecordId() {
//         return recordId;
//     }
// }


// Path: src/main/java/org/sharedmq/internals/MessageHeader.java
import org.sharedmq.primitives.MappedByteArrayStorageKey;

package org.sharedmq.internals;


/**
 * This class contains message properties and references.
 */
public class MessageHeader {
    private final long messageId;
    private final int messageNumber;

    private long sentTime;
    private long delay;
    private Long receivedTime;

    private int heapIndex;
    private MappedByteArrayStorageKey bodyKey;