github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/archive/codecs/RecordingDescriptorHeader.go (about)

     1  // Generated SBE (Simple Binary Encoding) message codec
     2  
     3  package codecs
     4  
     5  import (
     6  	"fmt"
     7  	"io"
     8  	"io/ioutil"
     9  	"math"
    10  )
    11  
    12  type RecordingDescriptorHeader struct {
    13  	Length   int32
    14  	State    RecordingStateEnum
    15  	Checksum int32
    16  	Reserved int8
    17  }
    18  
    19  func (r *RecordingDescriptorHeader) Encode(_m *SbeGoMarshaller, _w io.Writer, doRangeCheck bool) error {
    20  	if doRangeCheck {
    21  		if err := r.RangeCheck(r.SbeSchemaVersion(), r.SbeSchemaVersion()); err != nil {
    22  			return err
    23  		}
    24  	}
    25  	if err := _m.WriteInt32(_w, r.Length); err != nil {
    26  		return err
    27  	}
    28  	if err := r.State.Encode(_m, _w); err != nil {
    29  		return err
    30  	}
    31  	if err := _m.WriteInt32(_w, r.Checksum); err != nil {
    32  		return err
    33  	}
    34  
    35  	for i := 0; i < 19; i++ {
    36  		if err := _m.WriteUint8(_w, uint8(0)); err != nil {
    37  			return err
    38  		}
    39  	}
    40  	if err := _m.WriteInt8(_w, r.Reserved); err != nil {
    41  		return err
    42  	}
    43  	return nil
    44  }
    45  
    46  func (r *RecordingDescriptorHeader) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error {
    47  	if !r.LengthInActingVersion(actingVersion) {
    48  		r.Length = r.LengthNullValue()
    49  	} else {
    50  		if err := _m.ReadInt32(_r, &r.Length); err != nil {
    51  			return err
    52  		}
    53  	}
    54  	if r.StateInActingVersion(actingVersion) {
    55  		if err := r.State.Decode(_m, _r, actingVersion); err != nil {
    56  			return err
    57  		}
    58  	}
    59  	if !r.ChecksumInActingVersion(actingVersion) {
    60  		r.Checksum = r.ChecksumNullValue()
    61  	} else {
    62  		if err := _m.ReadInt32(_r, &r.Checksum); err != nil {
    63  			return err
    64  		}
    65  	}
    66  	io.CopyN(ioutil.Discard, _r, 19)
    67  	if !r.ReservedInActingVersion(actingVersion) {
    68  		r.Reserved = r.ReservedNullValue()
    69  	} else {
    70  		if err := _m.ReadInt8(_r, &r.Reserved); err != nil {
    71  			return err
    72  		}
    73  	}
    74  	if actingVersion > r.SbeSchemaVersion() && blockLength > r.SbeBlockLength() {
    75  		io.CopyN(ioutil.Discard, _r, int64(blockLength-r.SbeBlockLength()))
    76  	}
    77  	if doRangeCheck {
    78  		if err := r.RangeCheck(actingVersion, r.SbeSchemaVersion()); err != nil {
    79  			return err
    80  		}
    81  	}
    82  	return nil
    83  }
    84  
    85  func (r *RecordingDescriptorHeader) RangeCheck(actingVersion uint16, schemaVersion uint16) error {
    86  	if r.LengthInActingVersion(actingVersion) {
    87  		if r.Length < r.LengthMinValue() || r.Length > r.LengthMaxValue() {
    88  			return fmt.Errorf("Range check failed on r.Length (%v < %v > %v)", r.LengthMinValue(), r.Length, r.LengthMaxValue())
    89  		}
    90  	}
    91  	if err := r.State.RangeCheck(actingVersion, schemaVersion); err != nil {
    92  		return err
    93  	}
    94  	if r.ChecksumInActingVersion(actingVersion) {
    95  		if r.Checksum < r.ChecksumMinValue() || r.Checksum > r.ChecksumMaxValue() {
    96  			return fmt.Errorf("Range check failed on r.Checksum (%v < %v > %v)", r.ChecksumMinValue(), r.Checksum, r.ChecksumMaxValue())
    97  		}
    98  	}
    99  	if r.ReservedInActingVersion(actingVersion) {
   100  		if r.Reserved < r.ReservedMinValue() || r.Reserved > r.ReservedMaxValue() {
   101  			return fmt.Errorf("Range check failed on r.Reserved (%v < %v > %v)", r.ReservedMinValue(), r.Reserved, r.ReservedMaxValue())
   102  		}
   103  	}
   104  	return nil
   105  }
   106  
   107  func RecordingDescriptorHeaderInit(r *RecordingDescriptorHeader) {
   108  	return
   109  }
   110  
   111  func (*RecordingDescriptorHeader) SbeBlockLength() (blockLength uint16) {
   112  	return 32
   113  }
   114  
   115  func (*RecordingDescriptorHeader) SbeTemplateId() (templateId uint16) {
   116  	return 21
   117  }
   118  
   119  func (*RecordingDescriptorHeader) SbeSchemaId() (schemaId uint16) {
   120  	return 101
   121  }
   122  
   123  func (*RecordingDescriptorHeader) SbeSchemaVersion() (schemaVersion uint16) {
   124  	return 6
   125  }
   126  
   127  func (*RecordingDescriptorHeader) SbeSemanticType() (semanticType []byte) {
   128  	return []byte("")
   129  }
   130  
   131  func (*RecordingDescriptorHeader) LengthId() uint16 {
   132  	return 1
   133  }
   134  
   135  func (*RecordingDescriptorHeader) LengthSinceVersion() uint16 {
   136  	return 0
   137  }
   138  
   139  func (r *RecordingDescriptorHeader) LengthInActingVersion(actingVersion uint16) bool {
   140  	return actingVersion >= r.LengthSinceVersion()
   141  }
   142  
   143  func (*RecordingDescriptorHeader) LengthDeprecated() uint16 {
   144  	return 0
   145  }
   146  
   147  func (*RecordingDescriptorHeader) LengthMetaAttribute(meta int) string {
   148  	switch meta {
   149  	case 1:
   150  		return ""
   151  	case 2:
   152  		return ""
   153  	case 3:
   154  		return ""
   155  	case 4:
   156  		return "required"
   157  	}
   158  	return ""
   159  }
   160  
   161  func (*RecordingDescriptorHeader) LengthMinValue() int32 {
   162  	return math.MinInt32 + 1
   163  }
   164  
   165  func (*RecordingDescriptorHeader) LengthMaxValue() int32 {
   166  	return math.MaxInt32
   167  }
   168  
   169  func (*RecordingDescriptorHeader) LengthNullValue() int32 {
   170  	return math.MinInt32
   171  }
   172  
   173  func (*RecordingDescriptorHeader) StateId() uint16 {
   174  	return 2
   175  }
   176  
   177  func (*RecordingDescriptorHeader) StateSinceVersion() uint16 {
   178  	return 0
   179  }
   180  
   181  func (r *RecordingDescriptorHeader) StateInActingVersion(actingVersion uint16) bool {
   182  	return actingVersion >= r.StateSinceVersion()
   183  }
   184  
   185  func (*RecordingDescriptorHeader) StateDeprecated() uint16 {
   186  	return 0
   187  }
   188  
   189  func (*RecordingDescriptorHeader) StateMetaAttribute(meta int) string {
   190  	switch meta {
   191  	case 1:
   192  		return ""
   193  	case 2:
   194  		return ""
   195  	case 3:
   196  		return ""
   197  	case 4:
   198  		return "required"
   199  	}
   200  	return ""
   201  }
   202  
   203  func (*RecordingDescriptorHeader) ChecksumId() uint16 {
   204  	return 4
   205  }
   206  
   207  func (*RecordingDescriptorHeader) ChecksumSinceVersion() uint16 {
   208  	return 0
   209  }
   210  
   211  func (r *RecordingDescriptorHeader) ChecksumInActingVersion(actingVersion uint16) bool {
   212  	return actingVersion >= r.ChecksumSinceVersion()
   213  }
   214  
   215  func (*RecordingDescriptorHeader) ChecksumDeprecated() uint16 {
   216  	return 0
   217  }
   218  
   219  func (*RecordingDescriptorHeader) ChecksumMetaAttribute(meta int) string {
   220  	switch meta {
   221  	case 1:
   222  		return ""
   223  	case 2:
   224  		return ""
   225  	case 3:
   226  		return ""
   227  	case 4:
   228  		return "required"
   229  	}
   230  	return ""
   231  }
   232  
   233  func (*RecordingDescriptorHeader) ChecksumMinValue() int32 {
   234  	return math.MinInt32 + 1
   235  }
   236  
   237  func (*RecordingDescriptorHeader) ChecksumMaxValue() int32 {
   238  	return math.MaxInt32
   239  }
   240  
   241  func (*RecordingDescriptorHeader) ChecksumNullValue() int32 {
   242  	return math.MinInt32
   243  }
   244  
   245  func (*RecordingDescriptorHeader) ReservedId() uint16 {
   246  	return 3
   247  }
   248  
   249  func (*RecordingDescriptorHeader) ReservedSinceVersion() uint16 {
   250  	return 0
   251  }
   252  
   253  func (r *RecordingDescriptorHeader) ReservedInActingVersion(actingVersion uint16) bool {
   254  	return actingVersion >= r.ReservedSinceVersion()
   255  }
   256  
   257  func (*RecordingDescriptorHeader) ReservedDeprecated() uint16 {
   258  	return 0
   259  }
   260  
   261  func (*RecordingDescriptorHeader) ReservedMetaAttribute(meta int) string {
   262  	switch meta {
   263  	case 1:
   264  		return ""
   265  	case 2:
   266  		return ""
   267  	case 3:
   268  		return ""
   269  	case 4:
   270  		return "required"
   271  	}
   272  	return ""
   273  }
   274  
   275  func (*RecordingDescriptorHeader) ReservedMinValue() int8 {
   276  	return math.MinInt8 + 1
   277  }
   278  
   279  func (*RecordingDescriptorHeader) ReservedMaxValue() int8 {
   280  	return math.MaxInt8
   281  }
   282  
   283  func (*RecordingDescriptorHeader) ReservedNullValue() int8 {
   284  	return math.MinInt8
   285  }