github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/cluster/codecs/Vote.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 Vote struct { 13 CandidateTermId int64 14 LogLeadershipTermId int64 15 LogPosition int64 16 CandidateMemberId int32 17 FollowerMemberId int32 18 Vote BooleanTypeEnum 19 } 20 21 func (v *Vote) Encode(_m *SbeGoMarshaller, _w io.Writer, doRangeCheck bool) error { 22 if doRangeCheck { 23 if err := v.RangeCheck(v.SbeSchemaVersion(), v.SbeSchemaVersion()); err != nil { 24 return err 25 } 26 } 27 if err := _m.WriteInt64(_w, v.CandidateTermId); err != nil { 28 return err 29 } 30 if err := _m.WriteInt64(_w, v.LogLeadershipTermId); err != nil { 31 return err 32 } 33 if err := _m.WriteInt64(_w, v.LogPosition); err != nil { 34 return err 35 } 36 if err := _m.WriteInt32(_w, v.CandidateMemberId); err != nil { 37 return err 38 } 39 if err := _m.WriteInt32(_w, v.FollowerMemberId); err != nil { 40 return err 41 } 42 if err := v.Vote.Encode(_m, _w); err != nil { 43 return err 44 } 45 return nil 46 } 47 48 func (v *Vote) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error { 49 if !v.CandidateTermIdInActingVersion(actingVersion) { 50 v.CandidateTermId = v.CandidateTermIdNullValue() 51 } else { 52 if err := _m.ReadInt64(_r, &v.CandidateTermId); err != nil { 53 return err 54 } 55 } 56 if !v.LogLeadershipTermIdInActingVersion(actingVersion) { 57 v.LogLeadershipTermId = v.LogLeadershipTermIdNullValue() 58 } else { 59 if err := _m.ReadInt64(_r, &v.LogLeadershipTermId); err != nil { 60 return err 61 } 62 } 63 if !v.LogPositionInActingVersion(actingVersion) { 64 v.LogPosition = v.LogPositionNullValue() 65 } else { 66 if err := _m.ReadInt64(_r, &v.LogPosition); err != nil { 67 return err 68 } 69 } 70 if !v.CandidateMemberIdInActingVersion(actingVersion) { 71 v.CandidateMemberId = v.CandidateMemberIdNullValue() 72 } else { 73 if err := _m.ReadInt32(_r, &v.CandidateMemberId); err != nil { 74 return err 75 } 76 } 77 if !v.FollowerMemberIdInActingVersion(actingVersion) { 78 v.FollowerMemberId = v.FollowerMemberIdNullValue() 79 } else { 80 if err := _m.ReadInt32(_r, &v.FollowerMemberId); err != nil { 81 return err 82 } 83 } 84 if v.VoteInActingVersion(actingVersion) { 85 if err := v.Vote.Decode(_m, _r, actingVersion); err != nil { 86 return err 87 } 88 } 89 if actingVersion > v.SbeSchemaVersion() && blockLength > v.SbeBlockLength() { 90 io.CopyN(ioutil.Discard, _r, int64(blockLength-v.SbeBlockLength())) 91 } 92 if doRangeCheck { 93 if err := v.RangeCheck(actingVersion, v.SbeSchemaVersion()); err != nil { 94 return err 95 } 96 } 97 return nil 98 } 99 100 func (v *Vote) RangeCheck(actingVersion uint16, schemaVersion uint16) error { 101 if v.CandidateTermIdInActingVersion(actingVersion) { 102 if v.CandidateTermId < v.CandidateTermIdMinValue() || v.CandidateTermId > v.CandidateTermIdMaxValue() { 103 return fmt.Errorf("Range check failed on v.CandidateTermId (%v < %v > %v)", v.CandidateTermIdMinValue(), v.CandidateTermId, v.CandidateTermIdMaxValue()) 104 } 105 } 106 if v.LogLeadershipTermIdInActingVersion(actingVersion) { 107 if v.LogLeadershipTermId < v.LogLeadershipTermIdMinValue() || v.LogLeadershipTermId > v.LogLeadershipTermIdMaxValue() { 108 return fmt.Errorf("Range check failed on v.LogLeadershipTermId (%v < %v > %v)", v.LogLeadershipTermIdMinValue(), v.LogLeadershipTermId, v.LogLeadershipTermIdMaxValue()) 109 } 110 } 111 if v.LogPositionInActingVersion(actingVersion) { 112 if v.LogPosition < v.LogPositionMinValue() || v.LogPosition > v.LogPositionMaxValue() { 113 return fmt.Errorf("Range check failed on v.LogPosition (%v < %v > %v)", v.LogPositionMinValue(), v.LogPosition, v.LogPositionMaxValue()) 114 } 115 } 116 if v.CandidateMemberIdInActingVersion(actingVersion) { 117 if v.CandidateMemberId < v.CandidateMemberIdMinValue() || v.CandidateMemberId > v.CandidateMemberIdMaxValue() { 118 return fmt.Errorf("Range check failed on v.CandidateMemberId (%v < %v > %v)", v.CandidateMemberIdMinValue(), v.CandidateMemberId, v.CandidateMemberIdMaxValue()) 119 } 120 } 121 if v.FollowerMemberIdInActingVersion(actingVersion) { 122 if v.FollowerMemberId < v.FollowerMemberIdMinValue() || v.FollowerMemberId > v.FollowerMemberIdMaxValue() { 123 return fmt.Errorf("Range check failed on v.FollowerMemberId (%v < %v > %v)", v.FollowerMemberIdMinValue(), v.FollowerMemberId, v.FollowerMemberIdMaxValue()) 124 } 125 } 126 if err := v.Vote.RangeCheck(actingVersion, schemaVersion); err != nil { 127 return err 128 } 129 return nil 130 } 131 132 func VoteInit(v *Vote) { 133 return 134 } 135 136 func (*Vote) SbeBlockLength() (blockLength uint16) { 137 return 36 138 } 139 140 func (*Vote) SbeTemplateId() (templateId uint16) { 141 return 52 142 } 143 144 func (*Vote) SbeSchemaId() (schemaId uint16) { 145 return 111 146 } 147 148 func (*Vote) SbeSchemaVersion() (schemaVersion uint16) { 149 return 8 150 } 151 152 func (*Vote) SbeSemanticType() (semanticType []byte) { 153 return []byte("") 154 } 155 156 func (*Vote) CandidateTermIdId() uint16 { 157 return 1 158 } 159 160 func (*Vote) CandidateTermIdSinceVersion() uint16 { 161 return 0 162 } 163 164 func (v *Vote) CandidateTermIdInActingVersion(actingVersion uint16) bool { 165 return actingVersion >= v.CandidateTermIdSinceVersion() 166 } 167 168 func (*Vote) CandidateTermIdDeprecated() uint16 { 169 return 0 170 } 171 172 func (*Vote) CandidateTermIdMetaAttribute(meta int) string { 173 switch meta { 174 case 1: 175 return "" 176 case 2: 177 return "" 178 case 3: 179 return "" 180 case 4: 181 return "required" 182 } 183 return "" 184 } 185 186 func (*Vote) CandidateTermIdMinValue() int64 { 187 return math.MinInt64 + 1 188 } 189 190 func (*Vote) CandidateTermIdMaxValue() int64 { 191 return math.MaxInt64 192 } 193 194 func (*Vote) CandidateTermIdNullValue() int64 { 195 return math.MinInt64 196 } 197 198 func (*Vote) LogLeadershipTermIdId() uint16 { 199 return 2 200 } 201 202 func (*Vote) LogLeadershipTermIdSinceVersion() uint16 { 203 return 0 204 } 205 206 func (v *Vote) LogLeadershipTermIdInActingVersion(actingVersion uint16) bool { 207 return actingVersion >= v.LogLeadershipTermIdSinceVersion() 208 } 209 210 func (*Vote) LogLeadershipTermIdDeprecated() uint16 { 211 return 0 212 } 213 214 func (*Vote) LogLeadershipTermIdMetaAttribute(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 (*Vote) LogLeadershipTermIdMinValue() int64 { 229 return math.MinInt64 + 1 230 } 231 232 func (*Vote) LogLeadershipTermIdMaxValue() int64 { 233 return math.MaxInt64 234 } 235 236 func (*Vote) LogLeadershipTermIdNullValue() int64 { 237 return math.MinInt64 238 } 239 240 func (*Vote) LogPositionId() uint16 { 241 return 3 242 } 243 244 func (*Vote) LogPositionSinceVersion() uint16 { 245 return 0 246 } 247 248 func (v *Vote) LogPositionInActingVersion(actingVersion uint16) bool { 249 return actingVersion >= v.LogPositionSinceVersion() 250 } 251 252 func (*Vote) LogPositionDeprecated() uint16 { 253 return 0 254 } 255 256 func (*Vote) 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 (*Vote) LogPositionMinValue() int64 { 271 return math.MinInt64 + 1 272 } 273 274 func (*Vote) LogPositionMaxValue() int64 { 275 return math.MaxInt64 276 } 277 278 func (*Vote) LogPositionNullValue() int64 { 279 return math.MinInt64 280 } 281 282 func (*Vote) CandidateMemberIdId() uint16 { 283 return 4 284 } 285 286 func (*Vote) CandidateMemberIdSinceVersion() uint16 { 287 return 0 288 } 289 290 func (v *Vote) CandidateMemberIdInActingVersion(actingVersion uint16) bool { 291 return actingVersion >= v.CandidateMemberIdSinceVersion() 292 } 293 294 func (*Vote) CandidateMemberIdDeprecated() uint16 { 295 return 0 296 } 297 298 func (*Vote) CandidateMemberIdMetaAttribute(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 (*Vote) CandidateMemberIdMinValue() int32 { 313 return math.MinInt32 + 1 314 } 315 316 func (*Vote) CandidateMemberIdMaxValue() int32 { 317 return math.MaxInt32 318 } 319 320 func (*Vote) CandidateMemberIdNullValue() int32 { 321 return math.MinInt32 322 } 323 324 func (*Vote) FollowerMemberIdId() uint16 { 325 return 5 326 } 327 328 func (*Vote) FollowerMemberIdSinceVersion() uint16 { 329 return 0 330 } 331 332 func (v *Vote) FollowerMemberIdInActingVersion(actingVersion uint16) bool { 333 return actingVersion >= v.FollowerMemberIdSinceVersion() 334 } 335 336 func (*Vote) FollowerMemberIdDeprecated() uint16 { 337 return 0 338 } 339 340 func (*Vote) FollowerMemberIdMetaAttribute(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 (*Vote) FollowerMemberIdMinValue() int32 { 355 return math.MinInt32 + 1 356 } 357 358 func (*Vote) FollowerMemberIdMaxValue() int32 { 359 return math.MaxInt32 360 } 361 362 func (*Vote) FollowerMemberIdNullValue() int32 { 363 return math.MinInt32 364 } 365 366 func (*Vote) VoteId() uint16 { 367 return 6 368 } 369 370 func (*Vote) VoteSinceVersion() uint16 { 371 return 0 372 } 373 374 func (v *Vote) VoteInActingVersion(actingVersion uint16) bool { 375 return actingVersion >= v.VoteSinceVersion() 376 } 377 378 func (*Vote) VoteDeprecated() uint16 { 379 return 0 380 } 381 382 func (*Vote) VoteMetaAttribute(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 }