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

     1  // Generated SBE (Simple Binary Encoding) message codec
     2  
     3  package codecs
     4  
     5  import (
     6  	"fmt"
     7  	"io"
     8  	"math"
     9  )
    10  
    11  type GroupSizeEncoding struct {
    12  	BlockLength uint16
    13  	NumInGroup  uint16
    14  }
    15  
    16  func (g *GroupSizeEncoding) Encode(_m *SbeGoMarshaller, _w io.Writer) error {
    17  	if err := _m.WriteUint16(_w, g.BlockLength); err != nil {
    18  		return err
    19  	}
    20  	if err := _m.WriteUint16(_w, g.NumInGroup); err != nil {
    21  		return err
    22  	}
    23  	return nil
    24  }
    25  
    26  func (g *GroupSizeEncoding) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16) error {
    27  	if !g.BlockLengthInActingVersion(actingVersion) {
    28  		g.BlockLength = g.BlockLengthNullValue()
    29  	} else {
    30  		if err := _m.ReadUint16(_r, &g.BlockLength); err != nil {
    31  			return err
    32  		}
    33  	}
    34  	if !g.NumInGroupInActingVersion(actingVersion) {
    35  		g.NumInGroup = g.NumInGroupNullValue()
    36  	} else {
    37  		if err := _m.ReadUint16(_r, &g.NumInGroup); err != nil {
    38  			return err
    39  		}
    40  	}
    41  	return nil
    42  }
    43  
    44  func (g *GroupSizeEncoding) RangeCheck(actingVersion uint16, schemaVersion uint16) error {
    45  	if g.BlockLengthInActingVersion(actingVersion) {
    46  		if g.BlockLength < g.BlockLengthMinValue() || g.BlockLength > g.BlockLengthMaxValue() {
    47  			return fmt.Errorf("Range check failed on g.BlockLength (%v < %v > %v)", g.BlockLengthMinValue(), g.BlockLength, g.BlockLengthMaxValue())
    48  		}
    49  	}
    50  	if g.NumInGroupInActingVersion(actingVersion) {
    51  		if g.NumInGroup < g.NumInGroupMinValue() || g.NumInGroup > g.NumInGroupMaxValue() {
    52  			return fmt.Errorf("Range check failed on g.NumInGroup (%v < %v > %v)", g.NumInGroupMinValue(), g.NumInGroup, g.NumInGroupMaxValue())
    53  		}
    54  	}
    55  	return nil
    56  }
    57  
    58  func GroupSizeEncodingInit(g *GroupSizeEncoding) {
    59  	return
    60  }
    61  
    62  func (*GroupSizeEncoding) EncodedLength() int64 {
    63  	return 4
    64  }
    65  
    66  func (*GroupSizeEncoding) BlockLengthMinValue() uint16 {
    67  	return 0
    68  }
    69  
    70  func (*GroupSizeEncoding) BlockLengthMaxValue() uint16 {
    71  	return math.MaxUint16 - 1
    72  }
    73  
    74  func (*GroupSizeEncoding) BlockLengthNullValue() uint16 {
    75  	return math.MaxUint16
    76  }
    77  
    78  func (*GroupSizeEncoding) BlockLengthSinceVersion() uint16 {
    79  	return 0
    80  }
    81  
    82  func (g *GroupSizeEncoding) BlockLengthInActingVersion(actingVersion uint16) bool {
    83  	return actingVersion >= g.BlockLengthSinceVersion()
    84  }
    85  
    86  func (*GroupSizeEncoding) BlockLengthDeprecated() uint16 {
    87  	return 0
    88  }
    89  
    90  func (*GroupSizeEncoding) NumInGroupMinValue() uint16 {
    91  	return 0
    92  }
    93  
    94  func (*GroupSizeEncoding) NumInGroupMaxValue() uint16 {
    95  	return math.MaxUint16 - 1
    96  }
    97  
    98  func (*GroupSizeEncoding) NumInGroupNullValue() uint16 {
    99  	return math.MaxUint16
   100  }
   101  
   102  func (*GroupSizeEncoding) NumInGroupSinceVersion() uint16 {
   103  	return 0
   104  }
   105  
   106  func (g *GroupSizeEncoding) NumInGroupInActingVersion(actingVersion uint16) bool {
   107  	return actingVersion >= g.NumInGroupSinceVersion()
   108  }
   109  
   110  func (*GroupSizeEncoding) NumInGroupDeprecated() uint16 {
   111  	return 0
   112  }