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  }