github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/cluster/codecs/RequestVote.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 RequestVote struct { 13 LogLeadershipTermId int64 14 LogPosition int64 15 CandidateTermId int64 16 CandidateMemberId int32 17 } 18 19 func (r *RequestVote) Encode(_m *SbeGoMarshaller, _w io.Writer, doRangeCheck bool) error { 20 if doRangeCheck { 21 if err := r.RangeCheck(r.SbeSchemaVersion(), r.SbeSchemaVersion()); err != nil { 22 return err 23 } 24 } 25 if err := _m.WriteInt64(_w, r.LogLeadershipTermId); err != nil { 26 return err 27 } 28 if err := _m.WriteInt64(_w, r.LogPosition); err != nil { 29 return err 30 } 31 if err := _m.WriteInt64(_w, r.CandidateTermId); err != nil { 32 return err 33 } 34 if err := _m.WriteInt32(_w, r.CandidateMemberId); err != nil { 35 return err 36 } 37 return nil 38 } 39 40 func (r *RequestVote) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error { 41 if !r.LogLeadershipTermIdInActingVersion(actingVersion) { 42 r.LogLeadershipTermId = r.LogLeadershipTermIdNullValue() 43 } else { 44 if err := _m.ReadInt64(_r, &r.LogLeadershipTermId); err != nil { 45 return err 46 } 47 } 48 if !r.LogPositionInActingVersion(actingVersion) { 49 r.LogPosition = r.LogPositionNullValue() 50 } else { 51 if err := _m.ReadInt64(_r, &r.LogPosition); err != nil { 52 return err 53 } 54 } 55 if !r.CandidateTermIdInActingVersion(actingVersion) { 56 r.CandidateTermId = r.CandidateTermIdNullValue() 57 } else { 58 if err := _m.ReadInt64(_r, &r.CandidateTermId); err != nil { 59 return err 60 } 61 } 62 if !r.CandidateMemberIdInActingVersion(actingVersion) { 63 r.CandidateMemberId = r.CandidateMemberIdNullValue() 64 } else { 65 if err := _m.ReadInt32(_r, &r.CandidateMemberId); err != nil { 66 return err 67 } 68 } 69 if actingVersion > r.SbeSchemaVersion() && blockLength > r.SbeBlockLength() { 70 io.CopyN(ioutil.Discard, _r, int64(blockLength-r.SbeBlockLength())) 71 } 72 if doRangeCheck { 73 if err := r.RangeCheck(actingVersion, r.SbeSchemaVersion()); err != nil { 74 return err 75 } 76 } 77 return nil 78 } 79 80 func (r *RequestVote) RangeCheck(actingVersion uint16, schemaVersion uint16) error { 81 if r.LogLeadershipTermIdInActingVersion(actingVersion) { 82 if r.LogLeadershipTermId < r.LogLeadershipTermIdMinValue() || r.LogLeadershipTermId > r.LogLeadershipTermIdMaxValue() { 83 return fmt.Errorf("Range check failed on r.LogLeadershipTermId (%v < %v > %v)", r.LogLeadershipTermIdMinValue(), r.LogLeadershipTermId, r.LogLeadershipTermIdMaxValue()) 84 } 85 } 86 if r.LogPositionInActingVersion(actingVersion) { 87 if r.LogPosition < r.LogPositionMinValue() || r.LogPosition > r.LogPositionMaxValue() { 88 return fmt.Errorf("Range check failed on r.LogPosition (%v < %v > %v)", r.LogPositionMinValue(), r.LogPosition, r.LogPositionMaxValue()) 89 } 90 } 91 if r.CandidateTermIdInActingVersion(actingVersion) { 92 if r.CandidateTermId < r.CandidateTermIdMinValue() || r.CandidateTermId > r.CandidateTermIdMaxValue() { 93 return fmt.Errorf("Range check failed on r.CandidateTermId (%v < %v > %v)", r.CandidateTermIdMinValue(), r.CandidateTermId, r.CandidateTermIdMaxValue()) 94 } 95 } 96 if r.CandidateMemberIdInActingVersion(actingVersion) { 97 if r.CandidateMemberId < r.CandidateMemberIdMinValue() || r.CandidateMemberId > r.CandidateMemberIdMaxValue() { 98 return fmt.Errorf("Range check failed on r.CandidateMemberId (%v < %v > %v)", r.CandidateMemberIdMinValue(), r.CandidateMemberId, r.CandidateMemberIdMaxValue()) 99 } 100 } 101 return nil 102 } 103 104 func RequestVoteInit(r *RequestVote) { 105 return 106 } 107 108 func (*RequestVote) SbeBlockLength() (blockLength uint16) { 109 return 28 110 } 111 112 func (*RequestVote) SbeTemplateId() (templateId uint16) { 113 return 51 114 } 115 116 func (*RequestVote) SbeSchemaId() (schemaId uint16) { 117 return 111 118 } 119 120 func (*RequestVote) SbeSchemaVersion() (schemaVersion uint16) { 121 return 8 122 } 123 124 func (*RequestVote) SbeSemanticType() (semanticType []byte) { 125 return []byte("") 126 } 127 128 func (*RequestVote) LogLeadershipTermIdId() uint16 { 129 return 1 130 } 131 132 func (*RequestVote) LogLeadershipTermIdSinceVersion() uint16 { 133 return 0 134 } 135 136 func (r *RequestVote) LogLeadershipTermIdInActingVersion(actingVersion uint16) bool { 137 return actingVersion >= r.LogLeadershipTermIdSinceVersion() 138 } 139 140 func (*RequestVote) LogLeadershipTermIdDeprecated() uint16 { 141 return 0 142 } 143 144 func (*RequestVote) LogLeadershipTermIdMetaAttribute(meta int) string { 145 switch meta { 146 case 1: 147 return "" 148 case 2: 149 return "" 150 case 3: 151 return "" 152 case 4: 153 return "required" 154 } 155 return "" 156 } 157 158 func (*RequestVote) LogLeadershipTermIdMinValue() int64 { 159 return math.MinInt64 + 1 160 } 161 162 func (*RequestVote) LogLeadershipTermIdMaxValue() int64 { 163 return math.MaxInt64 164 } 165 166 func (*RequestVote) LogLeadershipTermIdNullValue() int64 { 167 return math.MinInt64 168 } 169 170 func (*RequestVote) LogPositionId() uint16 { 171 return 2 172 } 173 174 func (*RequestVote) LogPositionSinceVersion() uint16 { 175 return 0 176 } 177 178 func (r *RequestVote) LogPositionInActingVersion(actingVersion uint16) bool { 179 return actingVersion >= r.LogPositionSinceVersion() 180 } 181 182 func (*RequestVote) LogPositionDeprecated() uint16 { 183 return 0 184 } 185 186 func (*RequestVote) LogPositionMetaAttribute(meta int) string { 187 switch meta { 188 case 1: 189 return "" 190 case 2: 191 return "" 192 case 3: 193 return "" 194 case 4: 195 return "required" 196 } 197 return "" 198 } 199 200 func (*RequestVote) LogPositionMinValue() int64 { 201 return math.MinInt64 + 1 202 } 203 204 func (*RequestVote) LogPositionMaxValue() int64 { 205 return math.MaxInt64 206 } 207 208 func (*RequestVote) LogPositionNullValue() int64 { 209 return math.MinInt64 210 } 211 212 func (*RequestVote) CandidateTermIdId() uint16 { 213 return 3 214 } 215 216 func (*RequestVote) CandidateTermIdSinceVersion() uint16 { 217 return 0 218 } 219 220 func (r *RequestVote) CandidateTermIdInActingVersion(actingVersion uint16) bool { 221 return actingVersion >= r.CandidateTermIdSinceVersion() 222 } 223 224 func (*RequestVote) CandidateTermIdDeprecated() uint16 { 225 return 0 226 } 227 228 func (*RequestVote) CandidateTermIdMetaAttribute(meta int) string { 229 switch meta { 230 case 1: 231 return "" 232 case 2: 233 return "" 234 case 3: 235 return "" 236 case 4: 237 return "required" 238 } 239 return "" 240 } 241 242 func (*RequestVote) CandidateTermIdMinValue() int64 { 243 return math.MinInt64 + 1 244 } 245 246 func (*RequestVote) CandidateTermIdMaxValue() int64 { 247 return math.MaxInt64 248 } 249 250 func (*RequestVote) CandidateTermIdNullValue() int64 { 251 return math.MinInt64 252 } 253 254 func (*RequestVote) CandidateMemberIdId() uint16 { 255 return 4 256 } 257 258 func (*RequestVote) CandidateMemberIdSinceVersion() uint16 { 259 return 0 260 } 261 262 func (r *RequestVote) CandidateMemberIdInActingVersion(actingVersion uint16) bool { 263 return actingVersion >= r.CandidateMemberIdSinceVersion() 264 } 265 266 func (*RequestVote) CandidateMemberIdDeprecated() uint16 { 267 return 0 268 } 269 270 func (*RequestVote) CandidateMemberIdMetaAttribute(meta int) string { 271 switch meta { 272 case 1: 273 return "" 274 case 2: 275 return "" 276 case 3: 277 return "" 278 case 4: 279 return "required" 280 } 281 return "" 282 } 283 284 func (*RequestVote) CandidateMemberIdMinValue() int32 { 285 return math.MinInt32 + 1 286 } 287 288 func (*RequestVote) CandidateMemberIdMaxValue() int32 { 289 return math.MaxInt32 290 } 291 292 func (*RequestVote) CandidateMemberIdNullValue() int32 { 293 return math.MinInt32 294 }