1+ package org .hdf5javalib .hdffile .dataobjects .messages ;
2+
3+ import org .hdf5javalib .hdfjava .HdfDataFile ;
4+
5+ import java .nio .ByteBuffer ;
6+ import java .nio .ByteOrder ;
7+ import java .util .Arrays ;
8+
9+ public class ObjectReferenceCountMessage extends HdfMessage {
10+ /**
11+ * The version of the fill value message format.
12+ */
13+ private final int version ;
14+ private final long referenceCount ;
15+
16+ /**
17+ * Public constructor
18+ * @param version Message version
19+ * @param referenceCount referenceCount in Message
20+ * @param sizeMessageData size of message data
21+ * @param messageFlags messageflags
22+ */
23+ public ObjectReferenceCountMessage (int version , long referenceCount , int sizeMessageData , int messageFlags ) {
24+ super (MessageType .OBJECT_REFERENCE_COUNT_MESSAGE , sizeMessageData , messageFlags );
25+ this .version = version ;
26+ this .referenceCount = referenceCount ;
27+ }
28+
29+ /**
30+ * Parses a FillValueMessage from the provided data and file context.
31+ *
32+ * @param flags message flags
33+ * @param data the byte array containing the message data
34+ * @param hdfDataFile the HDF5 file context for additional resources
35+ * @return a new FillValueMessage instance parsed from the data
36+ */
37+ public static HdfMessage parseHeaderMessage (int flags , byte [] data , HdfDataFile hdfDataFile ) {
38+ ByteBuffer buffer = ByteBuffer .wrap (data ).order (ByteOrder .LITTLE_ENDIAN );
39+
40+ // Parse the first 4 bytes
41+ int version = Byte .toUnsignedInt (buffer .get ());
42+ long referenceCount = Integer .toUnsignedLong (buffer .getInt ());
43+ return new ObjectReferenceCountMessage (version , referenceCount , flags , data .length );
44+ }
45+
46+ /**
47+ * Returns a string representation of this FillValueMessage.
48+ *
49+ * @return a string describing the message size, version, allocation times, and fill value details
50+ */
51+ @ Override
52+ public String toString () {
53+ return "ObjectReferenceCountMessage(" + (getSizeMessageData () + HDF_MESSAGE_PREAMBLE_SIZE ) + "){" +
54+ "version=" + version +
55+ ", referenceCount=" + referenceCount +
56+ '}' ;
57+ }
58+
59+
60+ @ Override
61+ public void writeMessageToByteBuffer (ByteBuffer buffer ) {
62+ // not implemented
63+ }
64+ }
0 commit comments