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  }