github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/cluster/codecs/SessionKeepAlive.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 SessionKeepAlive struct { 13 LeadershipTermId int64 14 ClusterSessionId int64 15 } 16 17 func (s *SessionKeepAlive) Encode(_m *SbeGoMarshaller, _w io.Writer, doRangeCheck bool) error { 18 if doRangeCheck { 19 if err := s.RangeCheck(s.SbeSchemaVersion(), s.SbeSchemaVersion()); err != nil { 20 return err 21 } 22 } 23 if err := _m.WriteInt64(_w, s.LeadershipTermId); err != nil { 24 return err 25 } 26 if err := _m.WriteInt64(_w, s.ClusterSessionId); err != nil { 27 return err 28 } 29 return nil 30 } 31 32 func (s *SessionKeepAlive) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error { 33 if !s.LeadershipTermIdInActingVersion(actingVersion) { 34 s.LeadershipTermId = s.LeadershipTermIdNullValue() 35 } else { 36 if err := _m.ReadInt64(_r, &s.LeadershipTermId); err != nil { 37 return err 38 } 39 } 40 if !s.ClusterSessionIdInActingVersion(actingVersion) { 41 s.ClusterSessionId = s.ClusterSessionIdNullValue() 42 } else { 43 if err := _m.ReadInt64(_r, &s.ClusterSessionId); err != nil { 44 return err 45 } 46 } 47 if actingVersion > s.SbeSchemaVersion() && blockLength > s.SbeBlockLength() { 48 io.CopyN(ioutil.Discard, _r, int64(blockLength-s.SbeBlockLength())) 49 } 50 if doRangeCheck { 51 if err := s.RangeCheck(actingVersion, s.SbeSchemaVersion()); err != nil { 52 return err 53 } 54 } 55 return nil 56 } 57 58 func (s *SessionKeepAlive) RangeCheck(actingVersion uint16, schemaVersion uint16) error { 59 if s.LeadershipTermIdInActingVersion(actingVersion) { 60 if s.LeadershipTermId < s.LeadershipTermIdMinValue() || s.LeadershipTermId > s.LeadershipTermIdMaxValue() { 61 return fmt.Errorf("Range check failed on s.LeadershipTermId (%v < %v > %v)", s.LeadershipTermIdMinValue(), s.LeadershipTermId, s.LeadershipTermIdMaxValue()) 62 } 63 } 64 if s.ClusterSessionIdInActingVersion(actingVersion) { 65 if s.ClusterSessionId < s.ClusterSessionIdMinValue() || s.ClusterSessionId > s.ClusterSessionIdMaxValue() { 66 return fmt.Errorf("Range check failed on s.ClusterSessionId (%v < %v > %v)", s.ClusterSessionIdMinValue(), s.ClusterSessionId, s.ClusterSessionIdMaxValue()) 67 } 68 } 69 return nil 70 } 71 72 func SessionKeepAliveInit(s *SessionKeepAlive) { 73 return 74 } 75 76 func (*SessionKeepAlive) SbeBlockLength() (blockLength uint16) { 77 return 16 78 } 79 80 func (*SessionKeepAlive) SbeTemplateId() (templateId uint16) { 81 return 5 82 } 83 84 func (*SessionKeepAlive) SbeSchemaId() (schemaId uint16) { 85 return 111 86 } 87 88 func (*SessionKeepAlive) SbeSchemaVersion() (schemaVersion uint16) { 89 return 8 90 } 91 92 func (*SessionKeepAlive) SbeSemanticType() (semanticType []byte) { 93 return []byte("") 94 } 95 96 func (*SessionKeepAlive) LeadershipTermIdId() uint16 { 97 return 1 98 } 99 100 func (*SessionKeepAlive) LeadershipTermIdSinceVersion() uint16 { 101 return 0 102 } 103 104 func (s *SessionKeepAlive) LeadershipTermIdInActingVersion(actingVersion uint16) bool { 105 return actingVersion >= s.LeadershipTermIdSinceVersion() 106 } 107 108 func (*SessionKeepAlive) LeadershipTermIdDeprecated() uint16 { 109 return 0 110 } 111 112 func (*SessionKeepAlive) LeadershipTermIdMetaAttribute(meta int) string { 113 switch meta { 114 case 1: 115 return "" 116 case 2: 117 return "" 118 case 3: 119 return "" 120 case 4: 121 return "required" 122 } 123 return "" 124 } 125 126 func (*SessionKeepAlive) LeadershipTermIdMinValue() int64 { 127 return math.MinInt64 + 1 128 } 129 130 func (*SessionKeepAlive) LeadershipTermIdMaxValue() int64 { 131 return math.MaxInt64 132 } 133 134 func (*SessionKeepAlive) LeadershipTermIdNullValue() int64 { 135 return math.MinInt64 136 } 137 138 func (*SessionKeepAlive) ClusterSessionIdId() uint16 { 139 return 2 140 } 141 142 func (*SessionKeepAlive) ClusterSessionIdSinceVersion() uint16 { 143 return 0 144 } 145 146 func (s *SessionKeepAlive) ClusterSessionIdInActingVersion(actingVersion uint16) bool { 147 return actingVersion >= s.ClusterSessionIdSinceVersion() 148 } 149 150 func (*SessionKeepAlive) ClusterSessionIdDeprecated() uint16 { 151 return 0 152 } 153 154 func (*SessionKeepAlive) ClusterSessionIdMetaAttribute(meta int) string { 155 switch meta { 156 case 1: 157 return "" 158 case 2: 159 return "" 160 case 3: 161 return "" 162 case 4: 163 return "required" 164 } 165 return "" 166 } 167 168 func (*SessionKeepAlive) ClusterSessionIdMinValue() int64 { 169 return math.MinInt64 + 1 170 } 171 172 func (*SessionKeepAlive) ClusterSessionIdMaxValue() int64 { 173 return math.MaxInt64 174 } 175 176 func (*SessionKeepAlive) ClusterSessionIdNullValue() int64 { 177 return math.MinInt64 178 }