github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/cluster/codecs/NewLeaderEvent.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 NewLeaderEvent struct {
    13  	LeadershipTermId int64
    14  	ClusterSessionId int64
    15  	LeaderMemberId   int32
    16  	IngressEndpoints []uint8
    17  }
    18  
    19  func (n *NewLeaderEvent) Encode(_m *SbeGoMarshaller, _w io.Writer, doRangeCheck bool) error {
    20  	if doRangeCheck {
    21  		if err := n.RangeCheck(n.SbeSchemaVersion(), n.SbeSchemaVersion()); err != nil {
    22  			return err
    23  		}
    24  	}
    25  	if err := _m.WriteInt64(_w, n.LeadershipTermId); err != nil {
    26  		return err
    27  	}
    28  	if err := _m.WriteInt64(_w, n.ClusterSessionId); err != nil {
    29  		return err
    30  	}
    31  	if err := _m.WriteInt32(_w, n.LeaderMemberId); err != nil {
    32  		return err
    33  	}
    34  	if err := _m.WriteUint32(_w, uint32(len(n.IngressEndpoints))); err != nil {
    35  		return err
    36  	}
    37  	if err := _m.WriteBytes(_w, n.IngressEndpoints); err != nil {
    38  		return err
    39  	}
    40  	return nil
    41  }
    42  
    43  func (n *NewLeaderEvent) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error {
    44  	if !n.LeadershipTermIdInActingVersion(actingVersion) {
    45  		n.LeadershipTermId = n.LeadershipTermIdNullValue()
    46  	} else {
    47  		if err := _m.ReadInt64(_r, &n.LeadershipTermId); err != nil {
    48  			return err
    49  		}
    50  	}
    51  	if !n.ClusterSessionIdInActingVersion(actingVersion) {
    52  		n.ClusterSessionId = n.ClusterSessionIdNullValue()
    53  	} else {
    54  		if err := _m.ReadInt64(_r, &n.ClusterSessionId); err != nil {
    55  			return err
    56  		}
    57  	}
    58  	if !n.LeaderMemberIdInActingVersion(actingVersion) {
    59  		n.LeaderMemberId = n.LeaderMemberIdNullValue()
    60  	} else {
    61  		if err := _m.ReadInt32(_r, &n.LeaderMemberId); err != nil {
    62  			return err
    63  		}
    64  	}
    65  	if actingVersion > n.SbeSchemaVersion() && blockLength > n.SbeBlockLength() {
    66  		io.CopyN(ioutil.Discard, _r, int64(blockLength-n.SbeBlockLength()))
    67  	}
    68  
    69  	if n.IngressEndpointsInActingVersion(actingVersion) {
    70  		var IngressEndpointsLength uint32
    71  		if err := _m.ReadUint32(_r, &IngressEndpointsLength); err != nil {
    72  			return err
    73  		}
    74  		if cap(n.IngressEndpoints) < int(IngressEndpointsLength) {
    75  			n.IngressEndpoints = make([]uint8, IngressEndpointsLength)
    76  		}
    77  		n.IngressEndpoints = n.IngressEndpoints[:IngressEndpointsLength]
    78  		if err := _m.ReadBytes(_r, n.IngressEndpoints); err != nil {
    79  			return err
    80  		}
    81  	}
    82  	if doRangeCheck {
    83  		if err := n.RangeCheck(actingVersion, n.SbeSchemaVersion()); err != nil {
    84  			return err
    85  		}
    86  	}
    87  	return nil
    88  }
    89  
    90  func (n *NewLeaderEvent) RangeCheck(actingVersion uint16, schemaVersion uint16) error {
    91  	if n.LeadershipTermIdInActingVersion(actingVersion) {
    92  		if n.LeadershipTermId < n.LeadershipTermIdMinValue() || n.LeadershipTermId > n.LeadershipTermIdMaxValue() {
    93  			return fmt.Errorf("Range check failed on n.LeadershipTermId (%v < %v > %v)", n.LeadershipTermIdMinValue(), n.LeadershipTermId, n.LeadershipTermIdMaxValue())
    94  		}
    95  	}
    96  	if n.ClusterSessionIdInActingVersion(actingVersion) {
    97  		if n.ClusterSessionId < n.ClusterSessionIdMinValue() || n.ClusterSessionId > n.ClusterSessionIdMaxValue() {
    98  			return fmt.Errorf("Range check failed on n.ClusterSessionId (%v < %v > %v)", n.ClusterSessionIdMinValue(), n.ClusterSessionId, n.ClusterSessionIdMaxValue())
    99  		}
   100  	}
   101  	if n.LeaderMemberIdInActingVersion(actingVersion) {
   102  		if n.LeaderMemberId < n.LeaderMemberIdMinValue() || n.LeaderMemberId > n.LeaderMemberIdMaxValue() {
   103  			return fmt.Errorf("Range check failed on n.LeaderMemberId (%v < %v > %v)", n.LeaderMemberIdMinValue(), n.LeaderMemberId, n.LeaderMemberIdMaxValue())
   104  		}
   105  	}
   106  	for idx, ch := range n.IngressEndpoints {
   107  		if ch > 127 {
   108  			return fmt.Errorf("n.IngressEndpoints[%d]=%d failed ASCII validation", idx, ch)
   109  		}
   110  	}
   111  	return nil
   112  }
   113  
   114  func NewLeaderEventInit(n *NewLeaderEvent) {
   115  	return
   116  }
   117  
   118  func (*NewLeaderEvent) SbeBlockLength() (blockLength uint16) {
   119  	return 20
   120  }
   121  
   122  func (*NewLeaderEvent) SbeTemplateId() (templateId uint16) {
   123  	return 6
   124  }
   125  
   126  func (*NewLeaderEvent) SbeSchemaId() (schemaId uint16) {
   127  	return 111
   128  }
   129  
   130  func (*NewLeaderEvent) SbeSchemaVersion() (schemaVersion uint16) {
   131  	return 8
   132  }
   133  
   134  func (*NewLeaderEvent) SbeSemanticType() (semanticType []byte) {
   135  	return []byte("")
   136  }
   137  
   138  func (*NewLeaderEvent) LeadershipTermIdId() uint16 {
   139  	return 1
   140  }
   141  
   142  func (*NewLeaderEvent) LeadershipTermIdSinceVersion() uint16 {
   143  	return 0
   144  }
   145  
   146  func (n *NewLeaderEvent) LeadershipTermIdInActingVersion(actingVersion uint16) bool {
   147  	return actingVersion >= n.LeadershipTermIdSinceVersion()
   148  }
   149  
   150  func (*NewLeaderEvent) LeadershipTermIdDeprecated() uint16 {
   151  	return 0
   152  }
   153  
   154  func (*NewLeaderEvent) LeadershipTermIdMetaAttribute(meta int) string {
   155  	switch meta {
   156  	case 1:
   157  		return ""
   158  	case 2:
   159  		return ""
   160  	case 3:
   161  		return ""
   162  	case 4:
   163  		return "required"
   164  	}
   165  	return ""
   166  }
   167  
   168  func (*NewLeaderEvent) LeadershipTermIdMinValue() int64 {
   169  	return math.MinInt64 + 1
   170  }
   171  
   172  func (*NewLeaderEvent) LeadershipTermIdMaxValue() int64 {
   173  	return math.MaxInt64
   174  }
   175  
   176  func (*NewLeaderEvent) LeadershipTermIdNullValue() int64 {
   177  	return math.MinInt64
   178  }
   179  
   180  func (*NewLeaderEvent) ClusterSessionIdId() uint16 {
   181  	return 2
   182  }
   183  
   184  func (*NewLeaderEvent) ClusterSessionIdSinceVersion() uint16 {
   185  	return 0
   186  }
   187  
   188  func (n *NewLeaderEvent) ClusterSessionIdInActingVersion(actingVersion uint16) bool {
   189  	return actingVersion >= n.ClusterSessionIdSinceVersion()
   190  }
   191  
   192  func (*NewLeaderEvent) ClusterSessionIdDeprecated() uint16 {
   193  	return 0
   194  }
   195  
   196  func (*NewLeaderEvent) ClusterSessionIdMetaAttribute(meta int) string {
   197  	switch meta {
   198  	case 1:
   199  		return ""
   200  	case 2:
   201  		return ""
   202  	case 3:
   203  		return ""
   204  	case 4:
   205  		return "required"
   206  	}
   207  	return ""
   208  }
   209  
   210  func (*NewLeaderEvent) ClusterSessionIdMinValue() int64 {
   211  	return math.MinInt64 + 1
   212  }
   213  
   214  func (*NewLeaderEvent) ClusterSessionIdMaxValue() int64 {
   215  	return math.MaxInt64
   216  }
   217  
   218  func (*NewLeaderEvent) ClusterSessionIdNullValue() int64 {
   219  	return math.MinInt64
   220  }
   221  
   222  func (*NewLeaderEvent) LeaderMemberIdId() uint16 {
   223  	return 3
   224  }
   225  
   226  func (*NewLeaderEvent) LeaderMemberIdSinceVersion() uint16 {
   227  	return 0
   228  }
   229  
   230  func (n *NewLeaderEvent) LeaderMemberIdInActingVersion(actingVersion uint16) bool {
   231  	return actingVersion >= n.LeaderMemberIdSinceVersion()
   232  }
   233  
   234  func (*NewLeaderEvent) LeaderMemberIdDeprecated() uint16 {
   235  	return 0
   236  }
   237  
   238  func (*NewLeaderEvent) LeaderMemberIdMetaAttribute(meta int) string {
   239  	switch meta {
   240  	case 1:
   241  		return ""
   242  	case 2:
   243  		return ""
   244  	case 3:
   245  		return ""
   246  	case 4:
   247  		return "required"
   248  	}
   249  	return ""
   250  }
   251  
   252  func (*NewLeaderEvent) LeaderMemberIdMinValue() int32 {
   253  	return math.MinInt32 + 1
   254  }
   255  
   256  func (*NewLeaderEvent) LeaderMemberIdMaxValue() int32 {
   257  	return math.MaxInt32
   258  }
   259  
   260  func (*NewLeaderEvent) LeaderMemberIdNullValue() int32 {
   261  	return math.MinInt32
   262  }
   263  
   264  func (*NewLeaderEvent) IngressEndpointsMetaAttribute(meta int) string {
   265  	switch meta {
   266  	case 1:
   267  		return ""
   268  	case 2:
   269  		return ""
   270  	case 3:
   271  		return ""
   272  	case 4:
   273  		return "required"
   274  	}
   275  	return ""
   276  }
   277  
   278  func (*NewLeaderEvent) IngressEndpointsSinceVersion() uint16 {
   279  	return 0
   280  }
   281  
   282  func (n *NewLeaderEvent) IngressEndpointsInActingVersion(actingVersion uint16) bool {
   283  	return actingVersion >= n.IngressEndpointsSinceVersion()
   284  }
   285  
   286  func (*NewLeaderEvent) IngressEndpointsDeprecated() uint16 {
   287  	return 0
   288  }
   289  
   290  func (NewLeaderEvent) IngressEndpointsCharacterEncoding() string {
   291  	return "US-ASCII"
   292  }
   293  
   294  func (NewLeaderEvent) IngressEndpointsHeaderLength() uint64 {
   295  	return 4
   296  }