github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/cluster/codecs/CommitPosition.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 CommitPosition struct {
    13  	LeadershipTermId int64
    14  	LogPosition      int64
    15  	LeaderMemberId   int32
    16  }
    17  
    18  func (c *CommitPosition) Encode(_m *SbeGoMarshaller, _w io.Writer, doRangeCheck bool) error {
    19  	if doRangeCheck {
    20  		if err := c.RangeCheck(c.SbeSchemaVersion(), c.SbeSchemaVersion()); err != nil {
    21  			return err
    22  		}
    23  	}
    24  	if err := _m.WriteInt64(_w, c.LeadershipTermId); err != nil {
    25  		return err
    26  	}
    27  	if err := _m.WriteInt64(_w, c.LogPosition); err != nil {
    28  		return err
    29  	}
    30  	if err := _m.WriteInt32(_w, c.LeaderMemberId); err != nil {
    31  		return err
    32  	}
    33  	return nil
    34  }
    35  
    36  func (c *CommitPosition) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error {
    37  	if !c.LeadershipTermIdInActingVersion(actingVersion) {
    38  		c.LeadershipTermId = c.LeadershipTermIdNullValue()
    39  	} else {
    40  		if err := _m.ReadInt64(_r, &c.LeadershipTermId); err != nil {
    41  			return err
    42  		}
    43  	}
    44  	if !c.LogPositionInActingVersion(actingVersion) {
    45  		c.LogPosition = c.LogPositionNullValue()
    46  	} else {
    47  		if err := _m.ReadInt64(_r, &c.LogPosition); err != nil {
    48  			return err
    49  		}
    50  	}
    51  	if !c.LeaderMemberIdInActingVersion(actingVersion) {
    52  		c.LeaderMemberId = c.LeaderMemberIdNullValue()
    53  	} else {
    54  		if err := _m.ReadInt32(_r, &c.LeaderMemberId); err != nil {
    55  			return err
    56  		}
    57  	}
    58  	if actingVersion > c.SbeSchemaVersion() && blockLength > c.SbeBlockLength() {
    59  		io.CopyN(ioutil.Discard, _r, int64(blockLength-c.SbeBlockLength()))
    60  	}
    61  	if doRangeCheck {
    62  		if err := c.RangeCheck(actingVersion, c.SbeSchemaVersion()); err != nil {
    63  			return err
    64  		}
    65  	}
    66  	return nil
    67  }
    68  
    69  func (c *CommitPosition) RangeCheck(actingVersion uint16, schemaVersion uint16) error {
    70  	if c.LeadershipTermIdInActingVersion(actingVersion) {
    71  		if c.LeadershipTermId < c.LeadershipTermIdMinValue() || c.LeadershipTermId > c.LeadershipTermIdMaxValue() {
    72  			return fmt.Errorf("Range check failed on c.LeadershipTermId (%v < %v > %v)", c.LeadershipTermIdMinValue(), c.LeadershipTermId, c.LeadershipTermIdMaxValue())
    73  		}
    74  	}
    75  	if c.LogPositionInActingVersion(actingVersion) {
    76  		if c.LogPosition < c.LogPositionMinValue() || c.LogPosition > c.LogPositionMaxValue() {
    77  			return fmt.Errorf("Range check failed on c.LogPosition (%v < %v > %v)", c.LogPositionMinValue(), c.LogPosition, c.LogPositionMaxValue())
    78  		}
    79  	}
    80  	if c.LeaderMemberIdInActingVersion(actingVersion) {
    81  		if c.LeaderMemberId < c.LeaderMemberIdMinValue() || c.LeaderMemberId > c.LeaderMemberIdMaxValue() {
    82  			return fmt.Errorf("Range check failed on c.LeaderMemberId (%v < %v > %v)", c.LeaderMemberIdMinValue(), c.LeaderMemberId, c.LeaderMemberIdMaxValue())
    83  		}
    84  	}
    85  	return nil
    86  }
    87  
    88  func CommitPositionInit(c *CommitPosition) {
    89  	return
    90  }
    91  
    92  func (*CommitPosition) SbeBlockLength() (blockLength uint16) {
    93  	return 20
    94  }
    95  
    96  func (*CommitPosition) SbeTemplateId() (templateId uint16) {
    97  	return 55
    98  }
    99  
   100  func (*CommitPosition) SbeSchemaId() (schemaId uint16) {
   101  	return 111
   102  }
   103  
   104  func (*CommitPosition) SbeSchemaVersion() (schemaVersion uint16) {
   105  	return 8
   106  }
   107  
   108  func (*CommitPosition) SbeSemanticType() (semanticType []byte) {
   109  	return []byte("")
   110  }
   111  
   112  func (*CommitPosition) LeadershipTermIdId() uint16 {
   113  	return 1
   114  }
   115  
   116  func (*CommitPosition) LeadershipTermIdSinceVersion() uint16 {
   117  	return 0
   118  }
   119  
   120  func (c *CommitPosition) LeadershipTermIdInActingVersion(actingVersion uint16) bool {
   121  	return actingVersion >= c.LeadershipTermIdSinceVersion()
   122  }
   123  
   124  func (*CommitPosition) LeadershipTermIdDeprecated() uint16 {
   125  	return 0
   126  }
   127  
   128  func (*CommitPosition) LeadershipTermIdMetaAttribute(meta int) string {
   129  	switch meta {
   130  	case 1:
   131  		return ""
   132  	case 2:
   133  		return ""
   134  	case 3:
   135  		return ""
   136  	case 4:
   137  		return "required"
   138  	}
   139  	return ""
   140  }
   141  
   142  func (*CommitPosition) LeadershipTermIdMinValue() int64 {
   143  	return math.MinInt64 + 1
   144  }
   145  
   146  func (*CommitPosition) LeadershipTermIdMaxValue() int64 {
   147  	return math.MaxInt64
   148  }
   149  
   150  func (*CommitPosition) LeadershipTermIdNullValue() int64 {
   151  	return math.MinInt64
   152  }
   153  
   154  func (*CommitPosition) LogPositionId() uint16 {
   155  	return 2
   156  }
   157  
   158  func (*CommitPosition) LogPositionSinceVersion() uint16 {
   159  	return 0
   160  }
   161  
   162  func (c *CommitPosition) LogPositionInActingVersion(actingVersion uint16) bool {
   163  	return actingVersion >= c.LogPositionSinceVersion()
   164  }
   165  
   166  func (*CommitPosition) LogPositionDeprecated() uint16 {
   167  	return 0
   168  }
   169  
   170  func (*CommitPosition) LogPositionMetaAttribute(meta int) string {
   171  	switch meta {
   172  	case 1:
   173  		return ""
   174  	case 2:
   175  		return ""
   176  	case 3:
   177  		return ""
   178  	case 4:
   179  		return "required"
   180  	}
   181  	return ""
   182  }
   183  
   184  func (*CommitPosition) LogPositionMinValue() int64 {
   185  	return math.MinInt64 + 1
   186  }
   187  
   188  func (*CommitPosition) LogPositionMaxValue() int64 {
   189  	return math.MaxInt64
   190  }
   191  
   192  func (*CommitPosition) LogPositionNullValue() int64 {
   193  	return math.MinInt64
   194  }
   195  
   196  func (*CommitPosition) LeaderMemberIdId() uint16 {
   197  	return 3
   198  }
   199  
   200  func (*CommitPosition) LeaderMemberIdSinceVersion() uint16 {
   201  	return 0
   202  }
   203  
   204  func (c *CommitPosition) LeaderMemberIdInActingVersion(actingVersion uint16) bool {
   205  	return actingVersion >= c.LeaderMemberIdSinceVersion()
   206  }
   207  
   208  func (*CommitPosition) LeaderMemberIdDeprecated() uint16 {
   209  	return 0
   210  }
   211  
   212  func (*CommitPosition) LeaderMemberIdMetaAttribute(meta int) string {
   213  	switch meta {
   214  	case 1:
   215  		return ""
   216  	case 2:
   217  		return ""
   218  	case 3:
   219  		return ""
   220  	case 4:
   221  		return "required"
   222  	}
   223  	return ""
   224  }
   225  
   226  func (*CommitPosition) LeaderMemberIdMinValue() int32 {
   227  	return math.MinInt32 + 1
   228  }
   229  
   230  func (*CommitPosition) LeaderMemberIdMaxValue() int32 {
   231  	return math.MaxInt32
   232  }
   233  
   234  func (*CommitPosition) LeaderMemberIdNullValue() int32 {
   235  	return math.MinInt32
   236  }