github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/cluster/codecs/ServiceTerminationPosition.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 ServiceTerminationPosition struct { 13 LogPosition int64 14 } 15 16 func (s *ServiceTerminationPosition) Encode(_m *SbeGoMarshaller, _w io.Writer, doRangeCheck bool) error { 17 if doRangeCheck { 18 if err := s.RangeCheck(s.SbeSchemaVersion(), s.SbeSchemaVersion()); err != nil { 19 return err 20 } 21 } 22 if err := _m.WriteInt64(_w, s.LogPosition); err != nil { 23 return err 24 } 25 return nil 26 } 27 28 func (s *ServiceTerminationPosition) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error { 29 if !s.LogPositionInActingVersion(actingVersion) { 30 s.LogPosition = s.LogPositionNullValue() 31 } else { 32 if err := _m.ReadInt64(_r, &s.LogPosition); err != nil { 33 return err 34 } 35 } 36 if actingVersion > s.SbeSchemaVersion() && blockLength > s.SbeBlockLength() { 37 io.CopyN(ioutil.Discard, _r, int64(blockLength-s.SbeBlockLength())) 38 } 39 if doRangeCheck { 40 if err := s.RangeCheck(actingVersion, s.SbeSchemaVersion()); err != nil { 41 return err 42 } 43 } 44 return nil 45 } 46 47 func (s *ServiceTerminationPosition) RangeCheck(actingVersion uint16, schemaVersion uint16) error { 48 if s.LogPositionInActingVersion(actingVersion) { 49 if s.LogPosition < s.LogPositionMinValue() || s.LogPosition > s.LogPositionMaxValue() { 50 return fmt.Errorf("Range check failed on s.LogPosition (%v < %v > %v)", s.LogPositionMinValue(), s.LogPosition, s.LogPositionMaxValue()) 51 } 52 } 53 return nil 54 } 55 56 func ServiceTerminationPositionInit(s *ServiceTerminationPosition) { 57 return 58 } 59 60 func (*ServiceTerminationPosition) SbeBlockLength() (blockLength uint16) { 61 return 8 62 } 63 64 func (*ServiceTerminationPosition) SbeTemplateId() (templateId uint16) { 65 return 42 66 } 67 68 func (*ServiceTerminationPosition) SbeSchemaId() (schemaId uint16) { 69 return 111 70 } 71 72 func (*ServiceTerminationPosition) SbeSchemaVersion() (schemaVersion uint16) { 73 return 8 74 } 75 76 func (*ServiceTerminationPosition) SbeSemanticType() (semanticType []byte) { 77 return []byte("") 78 } 79 80 func (*ServiceTerminationPosition) LogPositionId() uint16 { 81 return 1 82 } 83 84 func (*ServiceTerminationPosition) LogPositionSinceVersion() uint16 { 85 return 0 86 } 87 88 func (s *ServiceTerminationPosition) LogPositionInActingVersion(actingVersion uint16) bool { 89 return actingVersion >= s.LogPositionSinceVersion() 90 } 91 92 func (*ServiceTerminationPosition) LogPositionDeprecated() uint16 { 93 return 0 94 } 95 96 func (*ServiceTerminationPosition) LogPositionMetaAttribute(meta int) string { 97 switch meta { 98 case 1: 99 return "" 100 case 2: 101 return "" 102 case 3: 103 return "" 104 case 4: 105 return "required" 106 } 107 return "" 108 } 109 110 func (*ServiceTerminationPosition) LogPositionMinValue() int64 { 111 return math.MinInt64 + 1 112 } 113 114 func (*ServiceTerminationPosition) LogPositionMaxValue() int64 { 115 return math.MaxInt64 116 } 117 118 func (*ServiceTerminationPosition) LogPositionNullValue() int64 { 119 return math.MinInt64 120 }