github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/cluster/codecs/MembershipChangeEvent.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 MembershipChangeEvent struct {
    13  	LeadershipTermId int64
    14  	LogPosition      int64
    15  	Timestamp        int64
    16  	LeaderMemberId   int32
    17  	ClusterSize      int32
    18  	ChangeType       ChangeTypeEnum
    19  	MemberId         int32
    20  	ClusterMembers   []uint8
    21  }
    22  
    23  func (m *MembershipChangeEvent) Encode(_m *SbeGoMarshaller, _w io.Writer, doRangeCheck bool) error {
    24  	if doRangeCheck {
    25  		if err := m.RangeCheck(m.SbeSchemaVersion(), m.SbeSchemaVersion()); err != nil {
    26  			return err
    27  		}
    28  	}
    29  	if err := _m.WriteInt64(_w, m.LeadershipTermId); err != nil {
    30  		return err
    31  	}
    32  	if err := _m.WriteInt64(_w, m.LogPosition); err != nil {
    33  		return err
    34  	}
    35  	if err := _m.WriteInt64(_w, m.Timestamp); err != nil {
    36  		return err
    37  	}
    38  	if err := _m.WriteInt32(_w, m.LeaderMemberId); err != nil {
    39  		return err
    40  	}
    41  	if err := _m.WriteInt32(_w, m.ClusterSize); err != nil {
    42  		return err
    43  	}
    44  	if err := m.ChangeType.Encode(_m, _w); err != nil {
    45  		return err
    46  	}
    47  	if err := _m.WriteInt32(_w, m.MemberId); err != nil {
    48  		return err
    49  	}
    50  	if err := _m.WriteUint32(_w, uint32(len(m.ClusterMembers))); err != nil {
    51  		return err
    52  	}
    53  	if err := _m.WriteBytes(_w, m.ClusterMembers); err != nil {
    54  		return err
    55  	}
    56  	return nil
    57  }
    58  
    59  func (m *MembershipChangeEvent) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error {
    60  	if !m.LeadershipTermIdInActingVersion(actingVersion) {
    61  		m.LeadershipTermId = m.LeadershipTermIdNullValue()
    62  	} else {
    63  		if err := _m.ReadInt64(_r, &m.LeadershipTermId); err != nil {
    64  			return err
    65  		}
    66  	}
    67  	if !m.LogPositionInActingVersion(actingVersion) {
    68  		m.LogPosition = m.LogPositionNullValue()
    69  	} else {
    70  		if err := _m.ReadInt64(_r, &m.LogPosition); err != nil {
    71  			return err
    72  		}
    73  	}
    74  	if !m.TimestampInActingVersion(actingVersion) {
    75  		m.Timestamp = m.TimestampNullValue()
    76  	} else {
    77  		if err := _m.ReadInt64(_r, &m.Timestamp); err != nil {
    78  			return err
    79  		}
    80  	}
    81  	if !m.LeaderMemberIdInActingVersion(actingVersion) {
    82  		m.LeaderMemberId = m.LeaderMemberIdNullValue()
    83  	} else {
    84  		if err := _m.ReadInt32(_r, &m.LeaderMemberId); err != nil {
    85  			return err
    86  		}
    87  	}
    88  	if !m.ClusterSizeInActingVersion(actingVersion) {
    89  		m.ClusterSize = m.ClusterSizeNullValue()
    90  	} else {
    91  		if err := _m.ReadInt32(_r, &m.ClusterSize); err != nil {
    92  			return err
    93  		}
    94  	}
    95  	if m.ChangeTypeInActingVersion(actingVersion) {
    96  		if err := m.ChangeType.Decode(_m, _r, actingVersion); err != nil {
    97  			return err
    98  		}
    99  	}
   100  	if !m.MemberIdInActingVersion(actingVersion) {
   101  		m.MemberId = m.MemberIdNullValue()
   102  	} else {
   103  		if err := _m.ReadInt32(_r, &m.MemberId); err != nil {
   104  			return err
   105  		}
   106  	}
   107  	if actingVersion > m.SbeSchemaVersion() && blockLength > m.SbeBlockLength() {
   108  		io.CopyN(ioutil.Discard, _r, int64(blockLength-m.SbeBlockLength()))
   109  	}
   110  
   111  	if m.ClusterMembersInActingVersion(actingVersion) {
   112  		var ClusterMembersLength uint32
   113  		if err := _m.ReadUint32(_r, &ClusterMembersLength); err != nil {
   114  			return err
   115  		}
   116  		if cap(m.ClusterMembers) < int(ClusterMembersLength) {
   117  			m.ClusterMembers = make([]uint8, ClusterMembersLength)
   118  		}
   119  		m.ClusterMembers = m.ClusterMembers[:ClusterMembersLength]
   120  		if err := _m.ReadBytes(_r, m.ClusterMembers); err != nil {
   121  			return err
   122  		}
   123  	}
   124  	if doRangeCheck {
   125  		if err := m.RangeCheck(actingVersion, m.SbeSchemaVersion()); err != nil {
   126  			return err
   127  		}
   128  	}
   129  	return nil
   130  }
   131  
   132  func (m *MembershipChangeEvent) RangeCheck(actingVersion uint16, schemaVersion uint16) error {
   133  	if m.LeadershipTermIdInActingVersion(actingVersion) {
   134  		if m.LeadershipTermId < m.LeadershipTermIdMinValue() || m.LeadershipTermId > m.LeadershipTermIdMaxValue() {
   135  			return fmt.Errorf("Range check failed on m.LeadershipTermId (%v < %v > %v)", m.LeadershipTermIdMinValue(), m.LeadershipTermId, m.LeadershipTermIdMaxValue())
   136  		}
   137  	}
   138  	if m.LogPositionInActingVersion(actingVersion) {
   139  		if m.LogPosition < m.LogPositionMinValue() || m.LogPosition > m.LogPositionMaxValue() {
   140  			return fmt.Errorf("Range check failed on m.LogPosition (%v < %v > %v)", m.LogPositionMinValue(), m.LogPosition, m.LogPositionMaxValue())
   141  		}
   142  	}
   143  	if m.TimestampInActingVersion(actingVersion) {
   144  		if m.Timestamp < m.TimestampMinValue() || m.Timestamp > m.TimestampMaxValue() {
   145  			return fmt.Errorf("Range check failed on m.Timestamp (%v < %v > %v)", m.TimestampMinValue(), m.Timestamp, m.TimestampMaxValue())
   146  		}
   147  	}
   148  	if m.LeaderMemberIdInActingVersion(actingVersion) {
   149  		if m.LeaderMemberId < m.LeaderMemberIdMinValue() || m.LeaderMemberId > m.LeaderMemberIdMaxValue() {
   150  			return fmt.Errorf("Range check failed on m.LeaderMemberId (%v < %v > %v)", m.LeaderMemberIdMinValue(), m.LeaderMemberId, m.LeaderMemberIdMaxValue())
   151  		}
   152  	}
   153  	if m.ClusterSizeInActingVersion(actingVersion) {
   154  		if m.ClusterSize < m.ClusterSizeMinValue() || m.ClusterSize > m.ClusterSizeMaxValue() {
   155  			return fmt.Errorf("Range check failed on m.ClusterSize (%v < %v > %v)", m.ClusterSizeMinValue(), m.ClusterSize, m.ClusterSizeMaxValue())
   156  		}
   157  	}
   158  	if err := m.ChangeType.RangeCheck(actingVersion, schemaVersion); err != nil {
   159  		return err
   160  	}
   161  	if m.MemberIdInActingVersion(actingVersion) {
   162  		if m.MemberId < m.MemberIdMinValue() || m.MemberId > m.MemberIdMaxValue() {
   163  			return fmt.Errorf("Range check failed on m.MemberId (%v < %v > %v)", m.MemberIdMinValue(), m.MemberId, m.MemberIdMaxValue())
   164  		}
   165  	}
   166  	for idx, ch := range m.ClusterMembers {
   167  		if ch > 127 {
   168  			return fmt.Errorf("m.ClusterMembers[%d]=%d failed ASCII validation", idx, ch)
   169  		}
   170  	}
   171  	return nil
   172  }
   173  
   174  func MembershipChangeEventInit(m *MembershipChangeEvent) {
   175  	return
   176  }
   177  
   178  func (*MembershipChangeEvent) SbeBlockLength() (blockLength uint16) {
   179  	return 40
   180  }
   181  
   182  func (*MembershipChangeEvent) SbeTemplateId() (templateId uint16) {
   183  	return 25
   184  }
   185  
   186  func (*MembershipChangeEvent) SbeSchemaId() (schemaId uint16) {
   187  	return 111
   188  }
   189  
   190  func (*MembershipChangeEvent) SbeSchemaVersion() (schemaVersion uint16) {
   191  	return 8
   192  }
   193  
   194  func (*MembershipChangeEvent) SbeSemanticType() (semanticType []byte) {
   195  	return []byte("")
   196  }
   197  
   198  func (*MembershipChangeEvent) LeadershipTermIdId() uint16 {
   199  	return 1
   200  }
   201  
   202  func (*MembershipChangeEvent) LeadershipTermIdSinceVersion() uint16 {
   203  	return 0
   204  }
   205  
   206  func (m *MembershipChangeEvent) LeadershipTermIdInActingVersion(actingVersion uint16) bool {
   207  	return actingVersion >= m.LeadershipTermIdSinceVersion()
   208  }
   209  
   210  func (*MembershipChangeEvent) LeadershipTermIdDeprecated() uint16 {
   211  	return 0
   212  }
   213  
   214  func (*MembershipChangeEvent) LeadershipTermIdMetaAttribute(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 (*MembershipChangeEvent) LeadershipTermIdMinValue() int64 {
   229  	return math.MinInt64 + 1
   230  }
   231  
   232  func (*MembershipChangeEvent) LeadershipTermIdMaxValue() int64 {
   233  	return math.MaxInt64
   234  }
   235  
   236  func (*MembershipChangeEvent) LeadershipTermIdNullValue() int64 {
   237  	return math.MinInt64
   238  }
   239  
   240  func (*MembershipChangeEvent) LogPositionId() uint16 {
   241  	return 2
   242  }
   243  
   244  func (*MembershipChangeEvent) LogPositionSinceVersion() uint16 {
   245  	return 0
   246  }
   247  
   248  func (m *MembershipChangeEvent) LogPositionInActingVersion(actingVersion uint16) bool {
   249  	return actingVersion >= m.LogPositionSinceVersion()
   250  }
   251  
   252  func (*MembershipChangeEvent) LogPositionDeprecated() uint16 {
   253  	return 0
   254  }
   255  
   256  func (*MembershipChangeEvent) 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 (*MembershipChangeEvent) LogPositionMinValue() int64 {
   271  	return math.MinInt64 + 1
   272  }
   273  
   274  func (*MembershipChangeEvent) LogPositionMaxValue() int64 {
   275  	return math.MaxInt64
   276  }
   277  
   278  func (*MembershipChangeEvent) LogPositionNullValue() int64 {
   279  	return math.MinInt64
   280  }
   281  
   282  func (*MembershipChangeEvent) TimestampId() uint16 {
   283  	return 3
   284  }
   285  
   286  func (*MembershipChangeEvent) TimestampSinceVersion() uint16 {
   287  	return 0
   288  }
   289  
   290  func (m *MembershipChangeEvent) TimestampInActingVersion(actingVersion uint16) bool {
   291  	return actingVersion >= m.TimestampSinceVersion()
   292  }
   293  
   294  func (*MembershipChangeEvent) TimestampDeprecated() uint16 {
   295  	return 0
   296  }
   297  
   298  func (*MembershipChangeEvent) TimestampMetaAttribute(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 (*MembershipChangeEvent) TimestampMinValue() int64 {
   313  	return math.MinInt64 + 1
   314  }
   315  
   316  func (*MembershipChangeEvent) TimestampMaxValue() int64 {
   317  	return math.MaxInt64
   318  }
   319  
   320  func (*MembershipChangeEvent) TimestampNullValue() int64 {
   321  	return math.MinInt64
   322  }
   323  
   324  func (*MembershipChangeEvent) LeaderMemberIdId() uint16 {
   325  	return 4
   326  }
   327  
   328  func (*MembershipChangeEvent) LeaderMemberIdSinceVersion() uint16 {
   329  	return 0
   330  }
   331  
   332  func (m *MembershipChangeEvent) LeaderMemberIdInActingVersion(actingVersion uint16) bool {
   333  	return actingVersion >= m.LeaderMemberIdSinceVersion()
   334  }
   335  
   336  func (*MembershipChangeEvent) LeaderMemberIdDeprecated() uint16 {
   337  	return 0
   338  }
   339  
   340  func (*MembershipChangeEvent) LeaderMemberIdMetaAttribute(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 (*MembershipChangeEvent) LeaderMemberIdMinValue() int32 {
   355  	return math.MinInt32 + 1
   356  }
   357  
   358  func (*MembershipChangeEvent) LeaderMemberIdMaxValue() int32 {
   359  	return math.MaxInt32
   360  }
   361  
   362  func (*MembershipChangeEvent) LeaderMemberIdNullValue() int32 {
   363  	return math.MinInt32
   364  }
   365  
   366  func (*MembershipChangeEvent) ClusterSizeId() uint16 {
   367  	return 5
   368  }
   369  
   370  func (*MembershipChangeEvent) ClusterSizeSinceVersion() uint16 {
   371  	return 0
   372  }
   373  
   374  func (m *MembershipChangeEvent) ClusterSizeInActingVersion(actingVersion uint16) bool {
   375  	return actingVersion >= m.ClusterSizeSinceVersion()
   376  }
   377  
   378  func (*MembershipChangeEvent) ClusterSizeDeprecated() uint16 {
   379  	return 0
   380  }
   381  
   382  func (*MembershipChangeEvent) ClusterSizeMetaAttribute(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  }
   395  
   396  func (*MembershipChangeEvent) ClusterSizeMinValue() int32 {
   397  	return math.MinInt32 + 1
   398  }
   399  
   400  func (*MembershipChangeEvent) ClusterSizeMaxValue() int32 {
   401  	return math.MaxInt32
   402  }
   403  
   404  func (*MembershipChangeEvent) ClusterSizeNullValue() int32 {
   405  	return math.MinInt32
   406  }
   407  
   408  func (*MembershipChangeEvent) ChangeTypeId() uint16 {
   409  	return 6
   410  }
   411  
   412  func (*MembershipChangeEvent) ChangeTypeSinceVersion() uint16 {
   413  	return 0
   414  }
   415  
   416  func (m *MembershipChangeEvent) ChangeTypeInActingVersion(actingVersion uint16) bool {
   417  	return actingVersion >= m.ChangeTypeSinceVersion()
   418  }
   419  
   420  func (*MembershipChangeEvent) ChangeTypeDeprecated() uint16 {
   421  	return 0
   422  }
   423  
   424  func (*MembershipChangeEvent) ChangeTypeMetaAttribute(meta int) string {
   425  	switch meta {
   426  	case 1:
   427  		return ""
   428  	case 2:
   429  		return ""
   430  	case 3:
   431  		return ""
   432  	case 4:
   433  		return "required"
   434  	}
   435  	return ""
   436  }
   437  
   438  func (*MembershipChangeEvent) MemberIdId() uint16 {
   439  	return 7
   440  }
   441  
   442  func (*MembershipChangeEvent) MemberIdSinceVersion() uint16 {
   443  	return 0
   444  }
   445  
   446  func (m *MembershipChangeEvent) MemberIdInActingVersion(actingVersion uint16) bool {
   447  	return actingVersion >= m.MemberIdSinceVersion()
   448  }
   449  
   450  func (*MembershipChangeEvent) MemberIdDeprecated() uint16 {
   451  	return 0
   452  }
   453  
   454  func (*MembershipChangeEvent) MemberIdMetaAttribute(meta int) string {
   455  	switch meta {
   456  	case 1:
   457  		return ""
   458  	case 2:
   459  		return ""
   460  	case 3:
   461  		return ""
   462  	case 4:
   463  		return "required"
   464  	}
   465  	return ""
   466  }
   467  
   468  func (*MembershipChangeEvent) MemberIdMinValue() int32 {
   469  	return math.MinInt32 + 1
   470  }
   471  
   472  func (*MembershipChangeEvent) MemberIdMaxValue() int32 {
   473  	return math.MaxInt32
   474  }
   475  
   476  func (*MembershipChangeEvent) MemberIdNullValue() int32 {
   477  	return math.MinInt32
   478  }
   479  
   480  func (*MembershipChangeEvent) ClusterMembersMetaAttribute(meta int) string {
   481  	switch meta {
   482  	case 1:
   483  		return ""
   484  	case 2:
   485  		return ""
   486  	case 3:
   487  		return ""
   488  	case 4:
   489  		return "required"
   490  	}
   491  	return ""
   492  }
   493  
   494  func (*MembershipChangeEvent) ClusterMembersSinceVersion() uint16 {
   495  	return 0
   496  }
   497  
   498  func (m *MembershipChangeEvent) ClusterMembersInActingVersion(actingVersion uint16) bool {
   499  	return actingVersion >= m.ClusterMembersSinceVersion()
   500  }
   501  
   502  func (*MembershipChangeEvent) ClusterMembersDeprecated() uint16 {
   503  	return 0
   504  }
   505  
   506  func (MembershipChangeEvent) ClusterMembersCharacterEncoding() string {
   507  	return "US-ASCII"
   508  }
   509  
   510  func (MembershipChangeEvent) ClusterMembersHeaderLength() uint64 {
   511  	return 4
   512  }