github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/cluster/codecs/JoinLog.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 JoinLog struct { 13 LogPosition int64 14 MaxLogPosition int64 15 MemberId int32 16 LogSessionId int32 17 LogStreamId int32 18 IsStartup BooleanTypeEnum 19 Role int32 20 LogChannel []uint8 21 } 22 23 func (j *JoinLog) Encode(_m *SbeGoMarshaller, _w io.Writer, doRangeCheck bool) error { 24 if doRangeCheck { 25 if err := j.RangeCheck(j.SbeSchemaVersion(), j.SbeSchemaVersion()); err != nil { 26 return err 27 } 28 } 29 if err := _m.WriteInt64(_w, j.LogPosition); err != nil { 30 return err 31 } 32 if err := _m.WriteInt64(_w, j.MaxLogPosition); err != nil { 33 return err 34 } 35 if err := _m.WriteInt32(_w, j.MemberId); err != nil { 36 return err 37 } 38 if err := _m.WriteInt32(_w, j.LogSessionId); err != nil { 39 return err 40 } 41 if err := _m.WriteInt32(_w, j.LogStreamId); err != nil { 42 return err 43 } 44 if err := j.IsStartup.Encode(_m, _w); err != nil { 45 return err 46 } 47 if err := _m.WriteInt32(_w, j.Role); err != nil { 48 return err 49 } 50 if err := _m.WriteUint32(_w, uint32(len(j.LogChannel))); err != nil { 51 return err 52 } 53 if err := _m.WriteBytes(_w, j.LogChannel); err != nil { 54 return err 55 } 56 return nil 57 } 58 59 func (j *JoinLog) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error { 60 if !j.LogPositionInActingVersion(actingVersion) { 61 j.LogPosition = j.LogPositionNullValue() 62 } else { 63 if err := _m.ReadInt64(_r, &j.LogPosition); err != nil { 64 return err 65 } 66 } 67 if !j.MaxLogPositionInActingVersion(actingVersion) { 68 j.MaxLogPosition = j.MaxLogPositionNullValue() 69 } else { 70 if err := _m.ReadInt64(_r, &j.MaxLogPosition); err != nil { 71 return err 72 } 73 } 74 if !j.MemberIdInActingVersion(actingVersion) { 75 j.MemberId = j.MemberIdNullValue() 76 } else { 77 if err := _m.ReadInt32(_r, &j.MemberId); err != nil { 78 return err 79 } 80 } 81 if !j.LogSessionIdInActingVersion(actingVersion) { 82 j.LogSessionId = j.LogSessionIdNullValue() 83 } else { 84 if err := _m.ReadInt32(_r, &j.LogSessionId); err != nil { 85 return err 86 } 87 } 88 if !j.LogStreamIdInActingVersion(actingVersion) { 89 j.LogStreamId = j.LogStreamIdNullValue() 90 } else { 91 if err := _m.ReadInt32(_r, &j.LogStreamId); err != nil { 92 return err 93 } 94 } 95 if j.IsStartupInActingVersion(actingVersion) { 96 if err := j.IsStartup.Decode(_m, _r, actingVersion); err != nil { 97 return err 98 } 99 } 100 if !j.RoleInActingVersion(actingVersion) { 101 j.Role = j.RoleNullValue() 102 } else { 103 if err := _m.ReadInt32(_r, &j.Role); err != nil { 104 return err 105 } 106 } 107 if actingVersion > j.SbeSchemaVersion() && blockLength > j.SbeBlockLength() { 108 io.CopyN(ioutil.Discard, _r, int64(blockLength-j.SbeBlockLength())) 109 } 110 111 if j.LogChannelInActingVersion(actingVersion) { 112 var LogChannelLength uint32 113 if err := _m.ReadUint32(_r, &LogChannelLength); err != nil { 114 return err 115 } 116 if cap(j.LogChannel) < int(LogChannelLength) { 117 j.LogChannel = make([]uint8, LogChannelLength) 118 } 119 j.LogChannel = j.LogChannel[:LogChannelLength] 120 if err := _m.ReadBytes(_r, j.LogChannel); err != nil { 121 return err 122 } 123 } 124 if doRangeCheck { 125 if err := j.RangeCheck(actingVersion, j.SbeSchemaVersion()); err != nil { 126 return err 127 } 128 } 129 return nil 130 } 131 132 func (j *JoinLog) RangeCheck(actingVersion uint16, schemaVersion uint16) error { 133 if j.LogPositionInActingVersion(actingVersion) { 134 if j.LogPosition < j.LogPositionMinValue() || j.LogPosition > j.LogPositionMaxValue() { 135 return fmt.Errorf("Range check failed on j.LogPosition (%v < %v > %v)", j.LogPositionMinValue(), j.LogPosition, j.LogPositionMaxValue()) 136 } 137 } 138 if j.MaxLogPositionInActingVersion(actingVersion) { 139 if j.MaxLogPosition < j.MaxLogPositionMinValue() || j.MaxLogPosition > j.MaxLogPositionMaxValue() { 140 return fmt.Errorf("Range check failed on j.MaxLogPosition (%v < %v > %v)", j.MaxLogPositionMinValue(), j.MaxLogPosition, j.MaxLogPositionMaxValue()) 141 } 142 } 143 if j.MemberIdInActingVersion(actingVersion) { 144 if j.MemberId < j.MemberIdMinValue() || j.MemberId > j.MemberIdMaxValue() { 145 return fmt.Errorf("Range check failed on j.MemberId (%v < %v > %v)", j.MemberIdMinValue(), j.MemberId, j.MemberIdMaxValue()) 146 } 147 } 148 if j.LogSessionIdInActingVersion(actingVersion) { 149 if j.LogSessionId < j.LogSessionIdMinValue() || j.LogSessionId > j.LogSessionIdMaxValue() { 150 return fmt.Errorf("Range check failed on j.LogSessionId (%v < %v > %v)", j.LogSessionIdMinValue(), j.LogSessionId, j.LogSessionIdMaxValue()) 151 } 152 } 153 if j.LogStreamIdInActingVersion(actingVersion) { 154 if j.LogStreamId < j.LogStreamIdMinValue() || j.LogStreamId > j.LogStreamIdMaxValue() { 155 return fmt.Errorf("Range check failed on j.LogStreamId (%v < %v > %v)", j.LogStreamIdMinValue(), j.LogStreamId, j.LogStreamIdMaxValue()) 156 } 157 } 158 if err := j.IsStartup.RangeCheck(actingVersion, schemaVersion); err != nil { 159 return err 160 } 161 if j.RoleInActingVersion(actingVersion) { 162 if j.Role < j.RoleMinValue() || j.Role > j.RoleMaxValue() { 163 return fmt.Errorf("Range check failed on j.Role (%v < %v > %v)", j.RoleMinValue(), j.Role, j.RoleMaxValue()) 164 } 165 } 166 for idx, ch := range j.LogChannel { 167 if ch > 127 { 168 return fmt.Errorf("j.LogChannel[%d]=%d failed ASCII validation", idx, ch) 169 } 170 } 171 return nil 172 } 173 174 func JoinLogInit(j *JoinLog) { 175 return 176 } 177 178 func (*JoinLog) SbeBlockLength() (blockLength uint16) { 179 return 36 180 } 181 182 func (*JoinLog) SbeTemplateId() (templateId uint16) { 183 return 40 184 } 185 186 func (*JoinLog) SbeSchemaId() (schemaId uint16) { 187 return 111 188 } 189 190 func (*JoinLog) SbeSchemaVersion() (schemaVersion uint16) { 191 return 8 192 } 193 194 func (*JoinLog) SbeSemanticType() (semanticType []byte) { 195 return []byte("") 196 } 197 198 func (*JoinLog) LogPositionId() uint16 { 199 return 1 200 } 201 202 func (*JoinLog) LogPositionSinceVersion() uint16 { 203 return 0 204 } 205 206 func (j *JoinLog) LogPositionInActingVersion(actingVersion uint16) bool { 207 return actingVersion >= j.LogPositionSinceVersion() 208 } 209 210 func (*JoinLog) LogPositionDeprecated() uint16 { 211 return 0 212 } 213 214 func (*JoinLog) LogPositionMetaAttribute(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 (*JoinLog) LogPositionMinValue() int64 { 229 return math.MinInt64 + 1 230 } 231 232 func (*JoinLog) LogPositionMaxValue() int64 { 233 return math.MaxInt64 234 } 235 236 func (*JoinLog) LogPositionNullValue() int64 { 237 return math.MinInt64 238 } 239 240 func (*JoinLog) MaxLogPositionId() uint16 { 241 return 2 242 } 243 244 func (*JoinLog) MaxLogPositionSinceVersion() uint16 { 245 return 0 246 } 247 248 func (j *JoinLog) MaxLogPositionInActingVersion(actingVersion uint16) bool { 249 return actingVersion >= j.MaxLogPositionSinceVersion() 250 } 251 252 func (*JoinLog) MaxLogPositionDeprecated() uint16 { 253 return 0 254 } 255 256 func (*JoinLog) MaxLogPositionMetaAttribute(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 (*JoinLog) MaxLogPositionMinValue() int64 { 271 return math.MinInt64 + 1 272 } 273 274 func (*JoinLog) MaxLogPositionMaxValue() int64 { 275 return math.MaxInt64 276 } 277 278 func (*JoinLog) MaxLogPositionNullValue() int64 { 279 return math.MinInt64 280 } 281 282 func (*JoinLog) MemberIdId() uint16 { 283 return 3 284 } 285 286 func (*JoinLog) MemberIdSinceVersion() uint16 { 287 return 0 288 } 289 290 func (j *JoinLog) MemberIdInActingVersion(actingVersion uint16) bool { 291 return actingVersion >= j.MemberIdSinceVersion() 292 } 293 294 func (*JoinLog) MemberIdDeprecated() uint16 { 295 return 0 296 } 297 298 func (*JoinLog) MemberIdMetaAttribute(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 (*JoinLog) MemberIdMinValue() int32 { 313 return math.MinInt32 + 1 314 } 315 316 func (*JoinLog) MemberIdMaxValue() int32 { 317 return math.MaxInt32 318 } 319 320 func (*JoinLog) MemberIdNullValue() int32 { 321 return math.MinInt32 322 } 323 324 func (*JoinLog) LogSessionIdId() uint16 { 325 return 4 326 } 327 328 func (*JoinLog) LogSessionIdSinceVersion() uint16 { 329 return 0 330 } 331 332 func (j *JoinLog) LogSessionIdInActingVersion(actingVersion uint16) bool { 333 return actingVersion >= j.LogSessionIdSinceVersion() 334 } 335 336 func (*JoinLog) LogSessionIdDeprecated() uint16 { 337 return 0 338 } 339 340 func (*JoinLog) LogSessionIdMetaAttribute(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 (*JoinLog) LogSessionIdMinValue() int32 { 355 return math.MinInt32 + 1 356 } 357 358 func (*JoinLog) LogSessionIdMaxValue() int32 { 359 return math.MaxInt32 360 } 361 362 func (*JoinLog) LogSessionIdNullValue() int32 { 363 return math.MinInt32 364 } 365 366 func (*JoinLog) LogStreamIdId() uint16 { 367 return 5 368 } 369 370 func (*JoinLog) LogStreamIdSinceVersion() uint16 { 371 return 0 372 } 373 374 func (j *JoinLog) LogStreamIdInActingVersion(actingVersion uint16) bool { 375 return actingVersion >= j.LogStreamIdSinceVersion() 376 } 377 378 func (*JoinLog) LogStreamIdDeprecated() uint16 { 379 return 0 380 } 381 382 func (*JoinLog) LogStreamIdMetaAttribute(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 (*JoinLog) LogStreamIdMinValue() int32 { 397 return math.MinInt32 + 1 398 } 399 400 func (*JoinLog) LogStreamIdMaxValue() int32 { 401 return math.MaxInt32 402 } 403 404 func (*JoinLog) LogStreamIdNullValue() int32 { 405 return math.MinInt32 406 } 407 408 func (*JoinLog) IsStartupId() uint16 { 409 return 6 410 } 411 412 func (*JoinLog) IsStartupSinceVersion() uint16 { 413 return 0 414 } 415 416 func (j *JoinLog) IsStartupInActingVersion(actingVersion uint16) bool { 417 return actingVersion >= j.IsStartupSinceVersion() 418 } 419 420 func (*JoinLog) IsStartupDeprecated() uint16 { 421 return 0 422 } 423 424 func (*JoinLog) IsStartupMetaAttribute(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 (*JoinLog) RoleId() uint16 { 439 return 7 440 } 441 442 func (*JoinLog) RoleSinceVersion() uint16 { 443 return 0 444 } 445 446 func (j *JoinLog) RoleInActingVersion(actingVersion uint16) bool { 447 return actingVersion >= j.RoleSinceVersion() 448 } 449 450 func (*JoinLog) RoleDeprecated() uint16 { 451 return 0 452 } 453 454 func (*JoinLog) RoleMetaAttribute(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 (*JoinLog) RoleMinValue() int32 { 469 return math.MinInt32 + 1 470 } 471 472 func (*JoinLog) RoleMaxValue() int32 { 473 return math.MaxInt32 474 } 475 476 func (*JoinLog) RoleNullValue() int32 { 477 return math.MinInt32 478 } 479 480 func (*JoinLog) LogChannelMetaAttribute(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 (*JoinLog) LogChannelSinceVersion() uint16 { 495 return 0 496 } 497 498 func (j *JoinLog) LogChannelInActingVersion(actingVersion uint16) bool { 499 return actingVersion >= j.LogChannelSinceVersion() 500 } 501 502 func (*JoinLog) LogChannelDeprecated() uint16 { 503 return 0 504 } 505 506 func (JoinLog) LogChannelCharacterEncoding() string { 507 return "US-ASCII" 508 } 509 510 func (JoinLog) LogChannelHeaderLength() uint64 { 511 return 4 512 }