github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/cluster/codecs/NewLeaderEvent.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 NewLeaderEvent struct { 13 LeadershipTermId int64 14 ClusterSessionId int64 15 LeaderMemberId int32 16 IngressEndpoints []uint8 17 } 18 19 func (n *NewLeaderEvent) Encode(_m *SbeGoMarshaller, _w io.Writer, doRangeCheck bool) error { 20 if doRangeCheck { 21 if err := n.RangeCheck(n.SbeSchemaVersion(), n.SbeSchemaVersion()); err != nil { 22 return err 23 } 24 } 25 if err := _m.WriteInt64(_w, n.LeadershipTermId); err != nil { 26 return err 27 } 28 if err := _m.WriteInt64(_w, n.ClusterSessionId); err != nil { 29 return err 30 } 31 if err := _m.WriteInt32(_w, n.LeaderMemberId); err != nil { 32 return err 33 } 34 if err := _m.WriteUint32(_w, uint32(len(n.IngressEndpoints))); err != nil { 35 return err 36 } 37 if err := _m.WriteBytes(_w, n.IngressEndpoints); err != nil { 38 return err 39 } 40 return nil 41 } 42 43 func (n *NewLeaderEvent) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error { 44 if !n.LeadershipTermIdInActingVersion(actingVersion) { 45 n.LeadershipTermId = n.LeadershipTermIdNullValue() 46 } else { 47 if err := _m.ReadInt64(_r, &n.LeadershipTermId); err != nil { 48 return err 49 } 50 } 51 if !n.ClusterSessionIdInActingVersion(actingVersion) { 52 n.ClusterSessionId = n.ClusterSessionIdNullValue() 53 } else { 54 if err := _m.ReadInt64(_r, &n.ClusterSessionId); err != nil { 55 return err 56 } 57 } 58 if !n.LeaderMemberIdInActingVersion(actingVersion) { 59 n.LeaderMemberId = n.LeaderMemberIdNullValue() 60 } else { 61 if err := _m.ReadInt32(_r, &n.LeaderMemberId); err != nil { 62 return err 63 } 64 } 65 if actingVersion > n.SbeSchemaVersion() && blockLength > n.SbeBlockLength() { 66 io.CopyN(ioutil.Discard, _r, int64(blockLength-n.SbeBlockLength())) 67 } 68 69 if n.IngressEndpointsInActingVersion(actingVersion) { 70 var IngressEndpointsLength uint32 71 if err := _m.ReadUint32(_r, &IngressEndpointsLength); err != nil { 72 return err 73 } 74 if cap(n.IngressEndpoints) < int(IngressEndpointsLength) { 75 n.IngressEndpoints = make([]uint8, IngressEndpointsLength) 76 } 77 n.IngressEndpoints = n.IngressEndpoints[:IngressEndpointsLength] 78 if err := _m.ReadBytes(_r, n.IngressEndpoints); err != nil { 79 return err 80 } 81 } 82 if doRangeCheck { 83 if err := n.RangeCheck(actingVersion, n.SbeSchemaVersion()); err != nil { 84 return err 85 } 86 } 87 return nil 88 } 89 90 func (n *NewLeaderEvent) RangeCheck(actingVersion uint16, schemaVersion uint16) error { 91 if n.LeadershipTermIdInActingVersion(actingVersion) { 92 if n.LeadershipTermId < n.LeadershipTermIdMinValue() || n.LeadershipTermId > n.LeadershipTermIdMaxValue() { 93 return fmt.Errorf("Range check failed on n.LeadershipTermId (%v < %v > %v)", n.LeadershipTermIdMinValue(), n.LeadershipTermId, n.LeadershipTermIdMaxValue()) 94 } 95 } 96 if n.ClusterSessionIdInActingVersion(actingVersion) { 97 if n.ClusterSessionId < n.ClusterSessionIdMinValue() || n.ClusterSessionId > n.ClusterSessionIdMaxValue() { 98 return fmt.Errorf("Range check failed on n.ClusterSessionId (%v < %v > %v)", n.ClusterSessionIdMinValue(), n.ClusterSessionId, n.ClusterSessionIdMaxValue()) 99 } 100 } 101 if n.LeaderMemberIdInActingVersion(actingVersion) { 102 if n.LeaderMemberId < n.LeaderMemberIdMinValue() || n.LeaderMemberId > n.LeaderMemberIdMaxValue() { 103 return fmt.Errorf("Range check failed on n.LeaderMemberId (%v < %v > %v)", n.LeaderMemberIdMinValue(), n.LeaderMemberId, n.LeaderMemberIdMaxValue()) 104 } 105 } 106 for idx, ch := range n.IngressEndpoints { 107 if ch > 127 { 108 return fmt.Errorf("n.IngressEndpoints[%d]=%d failed ASCII validation", idx, ch) 109 } 110 } 111 return nil 112 } 113 114 func NewLeaderEventInit(n *NewLeaderEvent) { 115 return 116 } 117 118 func (*NewLeaderEvent) SbeBlockLength() (blockLength uint16) { 119 return 20 120 } 121 122 func (*NewLeaderEvent) SbeTemplateId() (templateId uint16) { 123 return 6 124 } 125 126 func (*NewLeaderEvent) SbeSchemaId() (schemaId uint16) { 127 return 111 128 } 129 130 func (*NewLeaderEvent) SbeSchemaVersion() (schemaVersion uint16) { 131 return 8 132 } 133 134 func (*NewLeaderEvent) SbeSemanticType() (semanticType []byte) { 135 return []byte("") 136 } 137 138 func (*NewLeaderEvent) LeadershipTermIdId() uint16 { 139 return 1 140 } 141 142 func (*NewLeaderEvent) LeadershipTermIdSinceVersion() uint16 { 143 return 0 144 } 145 146 func (n *NewLeaderEvent) LeadershipTermIdInActingVersion(actingVersion uint16) bool { 147 return actingVersion >= n.LeadershipTermIdSinceVersion() 148 } 149 150 func (*NewLeaderEvent) LeadershipTermIdDeprecated() uint16 { 151 return 0 152 } 153 154 func (*NewLeaderEvent) LeadershipTermIdMetaAttribute(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 (*NewLeaderEvent) LeadershipTermIdMinValue() int64 { 169 return math.MinInt64 + 1 170 } 171 172 func (*NewLeaderEvent) LeadershipTermIdMaxValue() int64 { 173 return math.MaxInt64 174 } 175 176 func (*NewLeaderEvent) LeadershipTermIdNullValue() int64 { 177 return math.MinInt64 178 } 179 180 func (*NewLeaderEvent) ClusterSessionIdId() uint16 { 181 return 2 182 } 183 184 func (*NewLeaderEvent) ClusterSessionIdSinceVersion() uint16 { 185 return 0 186 } 187 188 func (n *NewLeaderEvent) ClusterSessionIdInActingVersion(actingVersion uint16) bool { 189 return actingVersion >= n.ClusterSessionIdSinceVersion() 190 } 191 192 func (*NewLeaderEvent) ClusterSessionIdDeprecated() uint16 { 193 return 0 194 } 195 196 func (*NewLeaderEvent) ClusterSessionIdMetaAttribute(meta int) string { 197 switch meta { 198 case 1: 199 return "" 200 case 2: 201 return "" 202 case 3: 203 return "" 204 case 4: 205 return "required" 206 } 207 return "" 208 } 209 210 func (*NewLeaderEvent) ClusterSessionIdMinValue() int64 { 211 return math.MinInt64 + 1 212 } 213 214 func (*NewLeaderEvent) ClusterSessionIdMaxValue() int64 { 215 return math.MaxInt64 216 } 217 218 func (*NewLeaderEvent) ClusterSessionIdNullValue() int64 { 219 return math.MinInt64 220 } 221 222 func (*NewLeaderEvent) LeaderMemberIdId() uint16 { 223 return 3 224 } 225 226 func (*NewLeaderEvent) LeaderMemberIdSinceVersion() uint16 { 227 return 0 228 } 229 230 func (n *NewLeaderEvent) LeaderMemberIdInActingVersion(actingVersion uint16) bool { 231 return actingVersion >= n.LeaderMemberIdSinceVersion() 232 } 233 234 func (*NewLeaderEvent) LeaderMemberIdDeprecated() uint16 { 235 return 0 236 } 237 238 func (*NewLeaderEvent) LeaderMemberIdMetaAttribute(meta int) string { 239 switch meta { 240 case 1: 241 return "" 242 case 2: 243 return "" 244 case 3: 245 return "" 246 case 4: 247 return "required" 248 } 249 return "" 250 } 251 252 func (*NewLeaderEvent) LeaderMemberIdMinValue() int32 { 253 return math.MinInt32 + 1 254 } 255 256 func (*NewLeaderEvent) LeaderMemberIdMaxValue() int32 { 257 return math.MaxInt32 258 } 259 260 func (*NewLeaderEvent) LeaderMemberIdNullValue() int32 { 261 return math.MinInt32 262 } 263 264 func (*NewLeaderEvent) IngressEndpointsMetaAttribute(meta int) string { 265 switch meta { 266 case 1: 267 return "" 268 case 2: 269 return "" 270 case 3: 271 return "" 272 case 4: 273 return "required" 274 } 275 return "" 276 } 277 278 func (*NewLeaderEvent) IngressEndpointsSinceVersion() uint16 { 279 return 0 280 } 281 282 func (n *NewLeaderEvent) IngressEndpointsInActingVersion(actingVersion uint16) bool { 283 return actingVersion >= n.IngressEndpointsSinceVersion() 284 } 285 286 func (*NewLeaderEvent) IngressEndpointsDeprecated() uint16 { 287 return 0 288 } 289 290 func (NewLeaderEvent) IngressEndpointsCharacterEncoding() string { 291 return "US-ASCII" 292 } 293 294 func (NewLeaderEvent) IngressEndpointsHeaderLength() uint64 { 295 return 4 296 }