github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/cluster/codecs/SessionEvent.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 SessionEvent struct { 13 ClusterSessionId int64 14 CorrelationId int64 15 LeadershipTermId int64 16 LeaderMemberId int32 17 Code EventCodeEnum 18 Version int32 19 Detail []uint8 20 } 21 22 func (s *SessionEvent) Encode(_m *SbeGoMarshaller, _w io.Writer, doRangeCheck bool) error { 23 if doRangeCheck { 24 if err := s.RangeCheck(s.SbeSchemaVersion(), s.SbeSchemaVersion()); err != nil { 25 return err 26 } 27 } 28 if err := _m.WriteInt64(_w, s.ClusterSessionId); err != nil { 29 return err 30 } 31 if err := _m.WriteInt64(_w, s.CorrelationId); err != nil { 32 return err 33 } 34 if err := _m.WriteInt64(_w, s.LeadershipTermId); err != nil { 35 return err 36 } 37 if err := _m.WriteInt32(_w, s.LeaderMemberId); err != nil { 38 return err 39 } 40 if err := s.Code.Encode(_m, _w); err != nil { 41 return err 42 } 43 if err := _m.WriteInt32(_w, s.Version); err != nil { 44 return err 45 } 46 if err := _m.WriteUint32(_w, uint32(len(s.Detail))); err != nil { 47 return err 48 } 49 if err := _m.WriteBytes(_w, s.Detail); err != nil { 50 return err 51 } 52 return nil 53 } 54 55 func (s *SessionEvent) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error { 56 if !s.ClusterSessionIdInActingVersion(actingVersion) { 57 s.ClusterSessionId = s.ClusterSessionIdNullValue() 58 } else { 59 if err := _m.ReadInt64(_r, &s.ClusterSessionId); err != nil { 60 return err 61 } 62 } 63 if !s.CorrelationIdInActingVersion(actingVersion) { 64 s.CorrelationId = s.CorrelationIdNullValue() 65 } else { 66 if err := _m.ReadInt64(_r, &s.CorrelationId); err != nil { 67 return err 68 } 69 } 70 if !s.LeadershipTermIdInActingVersion(actingVersion) { 71 s.LeadershipTermId = s.LeadershipTermIdNullValue() 72 } else { 73 if err := _m.ReadInt64(_r, &s.LeadershipTermId); err != nil { 74 return err 75 } 76 } 77 if !s.LeaderMemberIdInActingVersion(actingVersion) { 78 s.LeaderMemberId = s.LeaderMemberIdNullValue() 79 } else { 80 if err := _m.ReadInt32(_r, &s.LeaderMemberId); err != nil { 81 return err 82 } 83 } 84 if s.CodeInActingVersion(actingVersion) { 85 if err := s.Code.Decode(_m, _r, actingVersion); err != nil { 86 return err 87 } 88 } 89 if !s.VersionInActingVersion(actingVersion) { 90 s.Version = s.VersionNullValue() 91 } else { 92 if err := _m.ReadInt32(_r, &s.Version); err != nil { 93 return err 94 } 95 } 96 if actingVersion > s.SbeSchemaVersion() && blockLength > s.SbeBlockLength() { 97 io.CopyN(ioutil.Discard, _r, int64(blockLength-s.SbeBlockLength())) 98 } 99 100 if s.DetailInActingVersion(actingVersion) { 101 var DetailLength uint32 102 if err := _m.ReadUint32(_r, &DetailLength); err != nil { 103 return err 104 } 105 if cap(s.Detail) < int(DetailLength) { 106 s.Detail = make([]uint8, DetailLength) 107 } 108 s.Detail = s.Detail[:DetailLength] 109 if err := _m.ReadBytes(_r, s.Detail); err != nil { 110 return err 111 } 112 } 113 if doRangeCheck { 114 if err := s.RangeCheck(actingVersion, s.SbeSchemaVersion()); err != nil { 115 return err 116 } 117 } 118 return nil 119 } 120 121 func (s *SessionEvent) RangeCheck(actingVersion uint16, schemaVersion uint16) error { 122 if s.ClusterSessionIdInActingVersion(actingVersion) { 123 if s.ClusterSessionId < s.ClusterSessionIdMinValue() || s.ClusterSessionId > s.ClusterSessionIdMaxValue() { 124 return fmt.Errorf("Range check failed on s.ClusterSessionId (%v < %v > %v)", s.ClusterSessionIdMinValue(), s.ClusterSessionId, s.ClusterSessionIdMaxValue()) 125 } 126 } 127 if s.CorrelationIdInActingVersion(actingVersion) { 128 if s.CorrelationId < s.CorrelationIdMinValue() || s.CorrelationId > s.CorrelationIdMaxValue() { 129 return fmt.Errorf("Range check failed on s.CorrelationId (%v < %v > %v)", s.CorrelationIdMinValue(), s.CorrelationId, s.CorrelationIdMaxValue()) 130 } 131 } 132 if s.LeadershipTermIdInActingVersion(actingVersion) { 133 if s.LeadershipTermId < s.LeadershipTermIdMinValue() || s.LeadershipTermId > s.LeadershipTermIdMaxValue() { 134 return fmt.Errorf("Range check failed on s.LeadershipTermId (%v < %v > %v)", s.LeadershipTermIdMinValue(), s.LeadershipTermId, s.LeadershipTermIdMaxValue()) 135 } 136 } 137 if s.LeaderMemberIdInActingVersion(actingVersion) { 138 if s.LeaderMemberId < s.LeaderMemberIdMinValue() || s.LeaderMemberId > s.LeaderMemberIdMaxValue() { 139 return fmt.Errorf("Range check failed on s.LeaderMemberId (%v < %v > %v)", s.LeaderMemberIdMinValue(), s.LeaderMemberId, s.LeaderMemberIdMaxValue()) 140 } 141 } 142 if err := s.Code.RangeCheck(actingVersion, schemaVersion); err != nil { 143 return err 144 } 145 if s.VersionInActingVersion(actingVersion) { 146 if s.Version != s.VersionNullValue() && (s.Version < s.VersionMinValue() || s.Version > s.VersionMaxValue()) { 147 return fmt.Errorf("Range check failed on s.Version (%v < %v > %v)", s.VersionMinValue(), s.Version, s.VersionMaxValue()) 148 } 149 } 150 for idx, ch := range s.Detail { 151 if ch > 127 { 152 return fmt.Errorf("s.Detail[%d]=%d failed ASCII validation", idx, ch) 153 } 154 } 155 return nil 156 } 157 158 func SessionEventInit(s *SessionEvent) { 159 s.Version = 0 160 return 161 } 162 163 func (*SessionEvent) SbeBlockLength() (blockLength uint16) { 164 return 36 165 } 166 167 func (*SessionEvent) SbeTemplateId() (templateId uint16) { 168 return 2 169 } 170 171 func (*SessionEvent) SbeSchemaId() (schemaId uint16) { 172 return 111 173 } 174 175 func (*SessionEvent) SbeSchemaVersion() (schemaVersion uint16) { 176 return 8 177 } 178 179 func (*SessionEvent) SbeSemanticType() (semanticType []byte) { 180 return []byte("") 181 } 182 183 func (*SessionEvent) ClusterSessionIdId() uint16 { 184 return 1 185 } 186 187 func (*SessionEvent) ClusterSessionIdSinceVersion() uint16 { 188 return 0 189 } 190 191 func (s *SessionEvent) ClusterSessionIdInActingVersion(actingVersion uint16) bool { 192 return actingVersion >= s.ClusterSessionIdSinceVersion() 193 } 194 195 func (*SessionEvent) ClusterSessionIdDeprecated() uint16 { 196 return 0 197 } 198 199 func (*SessionEvent) ClusterSessionIdMetaAttribute(meta int) string { 200 switch meta { 201 case 1: 202 return "" 203 case 2: 204 return "" 205 case 3: 206 return "" 207 case 4: 208 return "required" 209 } 210 return "" 211 } 212 213 func (*SessionEvent) ClusterSessionIdMinValue() int64 { 214 return math.MinInt64 + 1 215 } 216 217 func (*SessionEvent) ClusterSessionIdMaxValue() int64 { 218 return math.MaxInt64 219 } 220 221 func (*SessionEvent) ClusterSessionIdNullValue() int64 { 222 return math.MinInt64 223 } 224 225 func (*SessionEvent) CorrelationIdId() uint16 { 226 return 2 227 } 228 229 func (*SessionEvent) CorrelationIdSinceVersion() uint16 { 230 return 0 231 } 232 233 func (s *SessionEvent) CorrelationIdInActingVersion(actingVersion uint16) bool { 234 return actingVersion >= s.CorrelationIdSinceVersion() 235 } 236 237 func (*SessionEvent) CorrelationIdDeprecated() uint16 { 238 return 0 239 } 240 241 func (*SessionEvent) CorrelationIdMetaAttribute(meta int) string { 242 switch meta { 243 case 1: 244 return "" 245 case 2: 246 return "" 247 case 3: 248 return "" 249 case 4: 250 return "required" 251 } 252 return "" 253 } 254 255 func (*SessionEvent) CorrelationIdMinValue() int64 { 256 return math.MinInt64 + 1 257 } 258 259 func (*SessionEvent) CorrelationIdMaxValue() int64 { 260 return math.MaxInt64 261 } 262 263 func (*SessionEvent) CorrelationIdNullValue() int64 { 264 return math.MinInt64 265 } 266 267 func (*SessionEvent) LeadershipTermIdId() uint16 { 268 return 3 269 } 270 271 func (*SessionEvent) LeadershipTermIdSinceVersion() uint16 { 272 return 0 273 } 274 275 func (s *SessionEvent) LeadershipTermIdInActingVersion(actingVersion uint16) bool { 276 return actingVersion >= s.LeadershipTermIdSinceVersion() 277 } 278 279 func (*SessionEvent) LeadershipTermIdDeprecated() uint16 { 280 return 0 281 } 282 283 func (*SessionEvent) LeadershipTermIdMetaAttribute(meta int) string { 284 switch meta { 285 case 1: 286 return "" 287 case 2: 288 return "" 289 case 3: 290 return "" 291 case 4: 292 return "required" 293 } 294 return "" 295 } 296 297 func (*SessionEvent) LeadershipTermIdMinValue() int64 { 298 return math.MinInt64 + 1 299 } 300 301 func (*SessionEvent) LeadershipTermIdMaxValue() int64 { 302 return math.MaxInt64 303 } 304 305 func (*SessionEvent) LeadershipTermIdNullValue() int64 { 306 return math.MinInt64 307 } 308 309 func (*SessionEvent) LeaderMemberIdId() uint16 { 310 return 4 311 } 312 313 func (*SessionEvent) LeaderMemberIdSinceVersion() uint16 { 314 return 0 315 } 316 317 func (s *SessionEvent) LeaderMemberIdInActingVersion(actingVersion uint16) bool { 318 return actingVersion >= s.LeaderMemberIdSinceVersion() 319 } 320 321 func (*SessionEvent) LeaderMemberIdDeprecated() uint16 { 322 return 0 323 } 324 325 func (*SessionEvent) LeaderMemberIdMetaAttribute(meta int) string { 326 switch meta { 327 case 1: 328 return "" 329 case 2: 330 return "" 331 case 3: 332 return "" 333 case 4: 334 return "required" 335 } 336 return "" 337 } 338 339 func (*SessionEvent) LeaderMemberIdMinValue() int32 { 340 return math.MinInt32 + 1 341 } 342 343 func (*SessionEvent) LeaderMemberIdMaxValue() int32 { 344 return math.MaxInt32 345 } 346 347 func (*SessionEvent) LeaderMemberIdNullValue() int32 { 348 return math.MinInt32 349 } 350 351 func (*SessionEvent) CodeId() uint16 { 352 return 5 353 } 354 355 func (*SessionEvent) CodeSinceVersion() uint16 { 356 return 0 357 } 358 359 func (s *SessionEvent) CodeInActingVersion(actingVersion uint16) bool { 360 return actingVersion >= s.CodeSinceVersion() 361 } 362 363 func (*SessionEvent) CodeDeprecated() uint16 { 364 return 0 365 } 366 367 func (*SessionEvent) CodeMetaAttribute(meta int) string { 368 switch meta { 369 case 1: 370 return "" 371 case 2: 372 return "" 373 case 3: 374 return "" 375 case 4: 376 return "required" 377 } 378 return "" 379 } 380 381 func (*SessionEvent) VersionId() uint16 { 382 return 6 383 } 384 385 func (*SessionEvent) VersionSinceVersion() uint16 { 386 return 6 387 } 388 389 func (s *SessionEvent) VersionInActingVersion(actingVersion uint16) bool { 390 return actingVersion >= s.VersionSinceVersion() 391 } 392 393 func (*SessionEvent) VersionDeprecated() uint16 { 394 return 0 395 } 396 397 func (*SessionEvent) VersionMetaAttribute(meta int) string { 398 switch meta { 399 case 1: 400 return "" 401 case 2: 402 return "" 403 case 3: 404 return "" 405 case 4: 406 return "optional" 407 } 408 return "" 409 } 410 411 func (*SessionEvent) VersionMinValue() int32 { 412 return 1 413 } 414 415 func (*SessionEvent) VersionMaxValue() int32 { 416 return 16777215 417 } 418 419 func (*SessionEvent) VersionNullValue() int32 { 420 return 0 421 } 422 423 func (*SessionEvent) DetailMetaAttribute(meta int) string { 424 switch meta { 425 case 1: 426 return "" 427 case 2: 428 return "" 429 case 3: 430 return "" 431 case 4: 432 return "required" 433 } 434 return "" 435 } 436 437 func (*SessionEvent) DetailSinceVersion() uint16 { 438 return 0 439 } 440 441 func (s *SessionEvent) DetailInActingVersion(actingVersion uint16) bool { 442 return actingVersion >= s.DetailSinceVersion() 443 } 444 445 func (*SessionEvent) DetailDeprecated() uint16 { 446 return 0 447 } 448 449 func (SessionEvent) DetailCharacterEncoding() string { 450 return "US-ASCII" 451 } 452 453 func (SessionEvent) DetailHeaderLength() uint64 { 454 return 4 455 }