github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/cluster/codecs/MembershipChangeEvent.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 MembershipChangeEvent struct { 13 LeadershipTermId int64 14 LogPosition int64 15 Timestamp int64 16 LeaderMemberId int32 17 ClusterSize int32 18 ChangeType ChangeTypeEnum 19 MemberId int32 20 ClusterMembers []uint8 21 } 22 23 func (m *MembershipChangeEvent) Encode(_m *SbeGoMarshaller, _w io.Writer, doRangeCheck bool) error { 24 if doRangeCheck { 25 if err := m.RangeCheck(m.SbeSchemaVersion(), m.SbeSchemaVersion()); err != nil { 26 return err 27 } 28 } 29 if err := _m.WriteInt64(_w, m.LeadershipTermId); err != nil { 30 return err 31 } 32 if err := _m.WriteInt64(_w, m.LogPosition); err != nil { 33 return err 34 } 35 if err := _m.WriteInt64(_w, m.Timestamp); err != nil { 36 return err 37 } 38 if err := _m.WriteInt32(_w, m.LeaderMemberId); err != nil { 39 return err 40 } 41 if err := _m.WriteInt32(_w, m.ClusterSize); err != nil { 42 return err 43 } 44 if err := m.ChangeType.Encode(_m, _w); err != nil { 45 return err 46 } 47 if err := _m.WriteInt32(_w, m.MemberId); err != nil { 48 return err 49 } 50 if err := _m.WriteUint32(_w, uint32(len(m.ClusterMembers))); err != nil { 51 return err 52 } 53 if err := _m.WriteBytes(_w, m.ClusterMembers); err != nil { 54 return err 55 } 56 return nil 57 } 58 59 func (m *MembershipChangeEvent) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error { 60 if !m.LeadershipTermIdInActingVersion(actingVersion) { 61 m.LeadershipTermId = m.LeadershipTermIdNullValue() 62 } else { 63 if err := _m.ReadInt64(_r, &m.LeadershipTermId); err != nil { 64 return err 65 } 66 } 67 if !m.LogPositionInActingVersion(actingVersion) { 68 m.LogPosition = m.LogPositionNullValue() 69 } else { 70 if err := _m.ReadInt64(_r, &m.LogPosition); err != nil { 71 return err 72 } 73 } 74 if !m.TimestampInActingVersion(actingVersion) { 75 m.Timestamp = m.TimestampNullValue() 76 } else { 77 if err := _m.ReadInt64(_r, &m.Timestamp); err != nil { 78 return err 79 } 80 } 81 if !m.LeaderMemberIdInActingVersion(actingVersion) { 82 m.LeaderMemberId = m.LeaderMemberIdNullValue() 83 } else { 84 if err := _m.ReadInt32(_r, &m.LeaderMemberId); err != nil { 85 return err 86 } 87 } 88 if !m.ClusterSizeInActingVersion(actingVersion) { 89 m.ClusterSize = m.ClusterSizeNullValue() 90 } else { 91 if err := _m.ReadInt32(_r, &m.ClusterSize); err != nil { 92 return err 93 } 94 } 95 if m.ChangeTypeInActingVersion(actingVersion) { 96 if err := m.ChangeType.Decode(_m, _r, actingVersion); err != nil { 97 return err 98 } 99 } 100 if !m.MemberIdInActingVersion(actingVersion) { 101 m.MemberId = m.MemberIdNullValue() 102 } else { 103 if err := _m.ReadInt32(_r, &m.MemberId); err != nil { 104 return err 105 } 106 } 107 if actingVersion > m.SbeSchemaVersion() && blockLength > m.SbeBlockLength() { 108 io.CopyN(ioutil.Discard, _r, int64(blockLength-m.SbeBlockLength())) 109 } 110 111 if m.ClusterMembersInActingVersion(actingVersion) { 112 var ClusterMembersLength uint32 113 if err := _m.ReadUint32(_r, &ClusterMembersLength); err != nil { 114 return err 115 } 116 if cap(m.ClusterMembers) < int(ClusterMembersLength) { 117 m.ClusterMembers = make([]uint8, ClusterMembersLength) 118 } 119 m.ClusterMembers = m.ClusterMembers[:ClusterMembersLength] 120 if err := _m.ReadBytes(_r, m.ClusterMembers); err != nil { 121 return err 122 } 123 } 124 if doRangeCheck { 125 if err := m.RangeCheck(actingVersion, m.SbeSchemaVersion()); err != nil { 126 return err 127 } 128 } 129 return nil 130 } 131 132 func (m *MembershipChangeEvent) RangeCheck(actingVersion uint16, schemaVersion uint16) error { 133 if m.LeadershipTermIdInActingVersion(actingVersion) { 134 if m.LeadershipTermId < m.LeadershipTermIdMinValue() || m.LeadershipTermId > m.LeadershipTermIdMaxValue() { 135 return fmt.Errorf("Range check failed on m.LeadershipTermId (%v < %v > %v)", m.LeadershipTermIdMinValue(), m.LeadershipTermId, m.LeadershipTermIdMaxValue()) 136 } 137 } 138 if m.LogPositionInActingVersion(actingVersion) { 139 if m.LogPosition < m.LogPositionMinValue() || m.LogPosition > m.LogPositionMaxValue() { 140 return fmt.Errorf("Range check failed on m.LogPosition (%v < %v > %v)", m.LogPositionMinValue(), m.LogPosition, m.LogPositionMaxValue()) 141 } 142 } 143 if m.TimestampInActingVersion(actingVersion) { 144 if m.Timestamp < m.TimestampMinValue() || m.Timestamp > m.TimestampMaxValue() { 145 return fmt.Errorf("Range check failed on m.Timestamp (%v < %v > %v)", m.TimestampMinValue(), m.Timestamp, m.TimestampMaxValue()) 146 } 147 } 148 if m.LeaderMemberIdInActingVersion(actingVersion) { 149 if m.LeaderMemberId < m.LeaderMemberIdMinValue() || m.LeaderMemberId > m.LeaderMemberIdMaxValue() { 150 return fmt.Errorf("Range check failed on m.LeaderMemberId (%v < %v > %v)", m.LeaderMemberIdMinValue(), m.LeaderMemberId, m.LeaderMemberIdMaxValue()) 151 } 152 } 153 if m.ClusterSizeInActingVersion(actingVersion) { 154 if m.ClusterSize < m.ClusterSizeMinValue() || m.ClusterSize > m.ClusterSizeMaxValue() { 155 return fmt.Errorf("Range check failed on m.ClusterSize (%v < %v > %v)", m.ClusterSizeMinValue(), m.ClusterSize, m.ClusterSizeMaxValue()) 156 } 157 } 158 if err := m.ChangeType.RangeCheck(actingVersion, schemaVersion); err != nil { 159 return err 160 } 161 if m.MemberIdInActingVersion(actingVersion) { 162 if m.MemberId < m.MemberIdMinValue() || m.MemberId > m.MemberIdMaxValue() { 163 return fmt.Errorf("Range check failed on m.MemberId (%v < %v > %v)", m.MemberIdMinValue(), m.MemberId, m.MemberIdMaxValue()) 164 } 165 } 166 for idx, ch := range m.ClusterMembers { 167 if ch > 127 { 168 return fmt.Errorf("m.ClusterMembers[%d]=%d failed ASCII validation", idx, ch) 169 } 170 } 171 return nil 172 } 173 174 func MembershipChangeEventInit(m *MembershipChangeEvent) { 175 return 176 } 177 178 func (*MembershipChangeEvent) SbeBlockLength() (blockLength uint16) { 179 return 40 180 } 181 182 func (*MembershipChangeEvent) SbeTemplateId() (templateId uint16) { 183 return 25 184 } 185 186 func (*MembershipChangeEvent) SbeSchemaId() (schemaId uint16) { 187 return 111 188 } 189 190 func (*MembershipChangeEvent) SbeSchemaVersion() (schemaVersion uint16) { 191 return 8 192 } 193 194 func (*MembershipChangeEvent) SbeSemanticType() (semanticType []byte) { 195 return []byte("") 196 } 197 198 func (*MembershipChangeEvent) LeadershipTermIdId() uint16 { 199 return 1 200 } 201 202 func (*MembershipChangeEvent) LeadershipTermIdSinceVersion() uint16 { 203 return 0 204 } 205 206 func (m *MembershipChangeEvent) LeadershipTermIdInActingVersion(actingVersion uint16) bool { 207 return actingVersion >= m.LeadershipTermIdSinceVersion() 208 } 209 210 func (*MembershipChangeEvent) LeadershipTermIdDeprecated() uint16 { 211 return 0 212 } 213 214 func (*MembershipChangeEvent) LeadershipTermIdMetaAttribute(meta int) string { 215 switch meta { 216 case 1: 217 return "" 218 case 2: 219 return "" 220 case 3: 221 return "" 222 case 4: 223 return "required" 224 } 225 return "" 226 } 227 228 func (*MembershipChangeEvent) LeadershipTermIdMinValue() int64 { 229 return math.MinInt64 + 1 230 } 231 232 func (*MembershipChangeEvent) LeadershipTermIdMaxValue() int64 { 233 return math.MaxInt64 234 } 235 236 func (*MembershipChangeEvent) LeadershipTermIdNullValue() int64 { 237 return math.MinInt64 238 } 239 240 func (*MembershipChangeEvent) LogPositionId() uint16 { 241 return 2 242 } 243 244 func (*MembershipChangeEvent) LogPositionSinceVersion() uint16 { 245 return 0 246 } 247 248 func (m *MembershipChangeEvent) LogPositionInActingVersion(actingVersion uint16) bool { 249 return actingVersion >= m.LogPositionSinceVersion() 250 } 251 252 func (*MembershipChangeEvent) LogPositionDeprecated() uint16 { 253 return 0 254 } 255 256 func (*MembershipChangeEvent) LogPositionMetaAttribute(meta int) string { 257 switch meta { 258 case 1: 259 return "" 260 case 2: 261 return "" 262 case 3: 263 return "" 264 case 4: 265 return "required" 266 } 267 return "" 268 } 269 270 func (*MembershipChangeEvent) LogPositionMinValue() int64 { 271 return math.MinInt64 + 1 272 } 273 274 func (*MembershipChangeEvent) LogPositionMaxValue() int64 { 275 return math.MaxInt64 276 } 277 278 func (*MembershipChangeEvent) LogPositionNullValue() int64 { 279 return math.MinInt64 280 } 281 282 func (*MembershipChangeEvent) TimestampId() uint16 { 283 return 3 284 } 285 286 func (*MembershipChangeEvent) TimestampSinceVersion() uint16 { 287 return 0 288 } 289 290 func (m *MembershipChangeEvent) TimestampInActingVersion(actingVersion uint16) bool { 291 return actingVersion >= m.TimestampSinceVersion() 292 } 293 294 func (*MembershipChangeEvent) TimestampDeprecated() uint16 { 295 return 0 296 } 297 298 func (*MembershipChangeEvent) TimestampMetaAttribute(meta int) string { 299 switch meta { 300 case 1: 301 return "" 302 case 2: 303 return "" 304 case 3: 305 return "" 306 case 4: 307 return "required" 308 } 309 return "" 310 } 311 312 func (*MembershipChangeEvent) TimestampMinValue() int64 { 313 return math.MinInt64 + 1 314 } 315 316 func (*MembershipChangeEvent) TimestampMaxValue() int64 { 317 return math.MaxInt64 318 } 319 320 func (*MembershipChangeEvent) TimestampNullValue() int64 { 321 return math.MinInt64 322 } 323 324 func (*MembershipChangeEvent) LeaderMemberIdId() uint16 { 325 return 4 326 } 327 328 func (*MembershipChangeEvent) LeaderMemberIdSinceVersion() uint16 { 329 return 0 330 } 331 332 func (m *MembershipChangeEvent) LeaderMemberIdInActingVersion(actingVersion uint16) bool { 333 return actingVersion >= m.LeaderMemberIdSinceVersion() 334 } 335 336 func (*MembershipChangeEvent) LeaderMemberIdDeprecated() uint16 { 337 return 0 338 } 339 340 func (*MembershipChangeEvent) LeaderMemberIdMetaAttribute(meta int) string { 341 switch meta { 342 case 1: 343 return "" 344 case 2: 345 return "" 346 case 3: 347 return "" 348 case 4: 349 return "required" 350 } 351 return "" 352 } 353 354 func (*MembershipChangeEvent) LeaderMemberIdMinValue() int32 { 355 return math.MinInt32 + 1 356 } 357 358 func (*MembershipChangeEvent) LeaderMemberIdMaxValue() int32 { 359 return math.MaxInt32 360 } 361 362 func (*MembershipChangeEvent) LeaderMemberIdNullValue() int32 { 363 return math.MinInt32 364 } 365 366 func (*MembershipChangeEvent) ClusterSizeId() uint16 { 367 return 5 368 } 369 370 func (*MembershipChangeEvent) ClusterSizeSinceVersion() uint16 { 371 return 0 372 } 373 374 func (m *MembershipChangeEvent) ClusterSizeInActingVersion(actingVersion uint16) bool { 375 return actingVersion >= m.ClusterSizeSinceVersion() 376 } 377 378 func (*MembershipChangeEvent) ClusterSizeDeprecated() uint16 { 379 return 0 380 } 381 382 func (*MembershipChangeEvent) ClusterSizeMetaAttribute(meta int) string { 383 switch meta { 384 case 1: 385 return "" 386 case 2: 387 return "" 388 case 3: 389 return "" 390 case 4: 391 return "required" 392 } 393 return "" 394 } 395 396 func (*MembershipChangeEvent) ClusterSizeMinValue() int32 { 397 return math.MinInt32 + 1 398 } 399 400 func (*MembershipChangeEvent) ClusterSizeMaxValue() int32 { 401 return math.MaxInt32 402 } 403 404 func (*MembershipChangeEvent) ClusterSizeNullValue() int32 { 405 return math.MinInt32 406 } 407 408 func (*MembershipChangeEvent) ChangeTypeId() uint16 { 409 return 6 410 } 411 412 func (*MembershipChangeEvent) ChangeTypeSinceVersion() uint16 { 413 return 0 414 } 415 416 func (m *MembershipChangeEvent) ChangeTypeInActingVersion(actingVersion uint16) bool { 417 return actingVersion >= m.ChangeTypeSinceVersion() 418 } 419 420 func (*MembershipChangeEvent) ChangeTypeDeprecated() uint16 { 421 return 0 422 } 423 424 func (*MembershipChangeEvent) ChangeTypeMetaAttribute(meta int) string { 425 switch meta { 426 case 1: 427 return "" 428 case 2: 429 return "" 430 case 3: 431 return "" 432 case 4: 433 return "required" 434 } 435 return "" 436 } 437 438 func (*MembershipChangeEvent) MemberIdId() uint16 { 439 return 7 440 } 441 442 func (*MembershipChangeEvent) MemberIdSinceVersion() uint16 { 443 return 0 444 } 445 446 func (m *MembershipChangeEvent) MemberIdInActingVersion(actingVersion uint16) bool { 447 return actingVersion >= m.MemberIdSinceVersion() 448 } 449 450 func (*MembershipChangeEvent) MemberIdDeprecated() uint16 { 451 return 0 452 } 453 454 func (*MembershipChangeEvent) MemberIdMetaAttribute(meta int) string { 455 switch meta { 456 case 1: 457 return "" 458 case 2: 459 return "" 460 case 3: 461 return "" 462 case 4: 463 return "required" 464 } 465 return "" 466 } 467 468 func (*MembershipChangeEvent) MemberIdMinValue() int32 { 469 return math.MinInt32 + 1 470 } 471 472 func (*MembershipChangeEvent) MemberIdMaxValue() int32 { 473 return math.MaxInt32 474 } 475 476 func (*MembershipChangeEvent) MemberIdNullValue() int32 { 477 return math.MinInt32 478 } 479 480 func (*MembershipChangeEvent) ClusterMembersMetaAttribute(meta int) string { 481 switch meta { 482 case 1: 483 return "" 484 case 2: 485 return "" 486 case 3: 487 return "" 488 case 4: 489 return "required" 490 } 491 return "" 492 } 493 494 func (*MembershipChangeEvent) ClusterMembersSinceVersion() uint16 { 495 return 0 496 } 497 498 func (m *MembershipChangeEvent) ClusterMembersInActingVersion(actingVersion uint16) bool { 499 return actingVersion >= m.ClusterMembersSinceVersion() 500 } 501 502 func (*MembershipChangeEvent) ClusterMembersDeprecated() uint16 { 503 return 0 504 } 505 506 func (MembershipChangeEvent) ClusterMembersCharacterEncoding() string { 507 return "US-ASCII" 508 } 509 510 func (MembershipChangeEvent) ClusterMembersHeaderLength() uint64 { 511 return 4 512 }