github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/cluster/codecs/SessionEvent.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 SessionEvent struct {
    13  	ClusterSessionId int64
    14  	CorrelationId    int64
    15  	LeadershipTermId int64
    16  	LeaderMemberId   int32
    17  	Code             EventCodeEnum
    18  	Version          int32
    19  	Detail           []uint8
    20  }
    21  
    22  func (s *SessionEvent) Encode(_m *SbeGoMarshaller, _w io.Writer, doRangeCheck bool) error {
    23  	if doRangeCheck {
    24  		if err := s.RangeCheck(s.SbeSchemaVersion(), s.SbeSchemaVersion()); err != nil {
    25  			return err
    26  		}
    27  	}
    28  	if err := _m.WriteInt64(_w, s.ClusterSessionId); err != nil {
    29  		return err
    30  	}
    31  	if err := _m.WriteInt64(_w, s.CorrelationId); err != nil {
    32  		return err
    33  	}
    34  	if err := _m.WriteInt64(_w, s.LeadershipTermId); err != nil {
    35  		return err
    36  	}
    37  	if err := _m.WriteInt32(_w, s.LeaderMemberId); err != nil {
    38  		return err
    39  	}
    40  	if err := s.Code.Encode(_m, _w); err != nil {
    41  		return err
    42  	}
    43  	if err := _m.WriteInt32(_w, s.Version); err != nil {
    44  		return err
    45  	}
    46  	if err := _m.WriteUint32(_w, uint32(len(s.Detail))); err != nil {
    47  		return err
    48  	}
    49  	if err := _m.WriteBytes(_w, s.Detail); err != nil {
    50  		return err
    51  	}
    52  	return nil
    53  }
    54  
    55  func (s *SessionEvent) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error {
    56  	if !s.ClusterSessionIdInActingVersion(actingVersion) {
    57  		s.ClusterSessionId = s.ClusterSessionIdNullValue()
    58  	} else {
    59  		if err := _m.ReadInt64(_r, &s.ClusterSessionId); err != nil {
    60  			return err
    61  		}
    62  	}
    63  	if !s.CorrelationIdInActingVersion(actingVersion) {
    64  		s.CorrelationId = s.CorrelationIdNullValue()
    65  	} else {
    66  		if err := _m.ReadInt64(_r, &s.CorrelationId); err != nil {
    67  			return err
    68  		}
    69  	}
    70  	if !s.LeadershipTermIdInActingVersion(actingVersion) {
    71  		s.LeadershipTermId = s.LeadershipTermIdNullValue()
    72  	} else {
    73  		if err := _m.ReadInt64(_r, &s.LeadershipTermId); err != nil {
    74  			return err
    75  		}
    76  	}
    77  	if !s.LeaderMemberIdInActingVersion(actingVersion) {
    78  		s.LeaderMemberId = s.LeaderMemberIdNullValue()
    79  	} else {
    80  		if err := _m.ReadInt32(_r, &s.LeaderMemberId); err != nil {
    81  			return err
    82  		}
    83  	}
    84  	if s.CodeInActingVersion(actingVersion) {
    85  		if err := s.Code.Decode(_m, _r, actingVersion); err != nil {
    86  			return err
    87  		}
    88  	}
    89  	if !s.VersionInActingVersion(actingVersion) {
    90  		s.Version = s.VersionNullValue()
    91  	} else {
    92  		if err := _m.ReadInt32(_r, &s.Version); err != nil {
    93  			return err
    94  		}
    95  	}
    96  	if actingVersion > s.SbeSchemaVersion() && blockLength > s.SbeBlockLength() {
    97  		io.CopyN(ioutil.Discard, _r, int64(blockLength-s.SbeBlockLength()))
    98  	}
    99  
   100  	if s.DetailInActingVersion(actingVersion) {
   101  		var DetailLength uint32
   102  		if err := _m.ReadUint32(_r, &DetailLength); err != nil {
   103  			return err
   104  		}
   105  		if cap(s.Detail) < int(DetailLength) {
   106  			s.Detail = make([]uint8, DetailLength)
   107  		}
   108  		s.Detail = s.Detail[:DetailLength]
   109  		if err := _m.ReadBytes(_r, s.Detail); err != nil {
   110  			return err
   111  		}
   112  	}
   113  	if doRangeCheck {
   114  		if err := s.RangeCheck(actingVersion, s.SbeSchemaVersion()); err != nil {
   115  			return err
   116  		}
   117  	}
   118  	return nil
   119  }
   120  
   121  func (s *SessionEvent) RangeCheck(actingVersion uint16, schemaVersion uint16) error {
   122  	if s.ClusterSessionIdInActingVersion(actingVersion) {
   123  		if s.ClusterSessionId < s.ClusterSessionIdMinValue() || s.ClusterSessionId > s.ClusterSessionIdMaxValue() {
   124  			return fmt.Errorf("Range check failed on s.ClusterSessionId (%v < %v > %v)", s.ClusterSessionIdMinValue(), s.ClusterSessionId, s.ClusterSessionIdMaxValue())
   125  		}
   126  	}
   127  	if s.CorrelationIdInActingVersion(actingVersion) {
   128  		if s.CorrelationId < s.CorrelationIdMinValue() || s.CorrelationId > s.CorrelationIdMaxValue() {
   129  			return fmt.Errorf("Range check failed on s.CorrelationId (%v < %v > %v)", s.CorrelationIdMinValue(), s.CorrelationId, s.CorrelationIdMaxValue())
   130  		}
   131  	}
   132  	if s.LeadershipTermIdInActingVersion(actingVersion) {
   133  		if s.LeadershipTermId < s.LeadershipTermIdMinValue() || s.LeadershipTermId > s.LeadershipTermIdMaxValue() {
   134  			return fmt.Errorf("Range check failed on s.LeadershipTermId (%v < %v > %v)", s.LeadershipTermIdMinValue(), s.LeadershipTermId, s.LeadershipTermIdMaxValue())
   135  		}
   136  	}
   137  	if s.LeaderMemberIdInActingVersion(actingVersion) {
   138  		if s.LeaderMemberId < s.LeaderMemberIdMinValue() || s.LeaderMemberId > s.LeaderMemberIdMaxValue() {
   139  			return fmt.Errorf("Range check failed on s.LeaderMemberId (%v < %v > %v)", s.LeaderMemberIdMinValue(), s.LeaderMemberId, s.LeaderMemberIdMaxValue())
   140  		}
   141  	}
   142  	if err := s.Code.RangeCheck(actingVersion, schemaVersion); err != nil {
   143  		return err
   144  	}
   145  	if s.VersionInActingVersion(actingVersion) {
   146  		if s.Version != s.VersionNullValue() && (s.Version < s.VersionMinValue() || s.Version > s.VersionMaxValue()) {
   147  			return fmt.Errorf("Range check failed on s.Version (%v < %v > %v)", s.VersionMinValue(), s.Version, s.VersionMaxValue())
   148  		}
   149  	}
   150  	for idx, ch := range s.Detail {
   151  		if ch > 127 {
   152  			return fmt.Errorf("s.Detail[%d]=%d failed ASCII validation", idx, ch)
   153  		}
   154  	}
   155  	return nil
   156  }
   157  
   158  func SessionEventInit(s *SessionEvent) {
   159  	s.Version = 0
   160  	return
   161  }
   162  
   163  func (*SessionEvent) SbeBlockLength() (blockLength uint16) {
   164  	return 36
   165  }
   166  
   167  func (*SessionEvent) SbeTemplateId() (templateId uint16) {
   168  	return 2
   169  }
   170  
   171  func (*SessionEvent) SbeSchemaId() (schemaId uint16) {
   172  	return 111
   173  }
   174  
   175  func (*SessionEvent) SbeSchemaVersion() (schemaVersion uint16) {
   176  	return 8
   177  }
   178  
   179  func (*SessionEvent) SbeSemanticType() (semanticType []byte) {
   180  	return []byte("")
   181  }
   182  
   183  func (*SessionEvent) ClusterSessionIdId() uint16 {
   184  	return 1
   185  }
   186  
   187  func (*SessionEvent) ClusterSessionIdSinceVersion() uint16 {
   188  	return 0
   189  }
   190  
   191  func (s *SessionEvent) ClusterSessionIdInActingVersion(actingVersion uint16) bool {
   192  	return actingVersion >= s.ClusterSessionIdSinceVersion()
   193  }
   194  
   195  func (*SessionEvent) ClusterSessionIdDeprecated() uint16 {
   196  	return 0
   197  }
   198  
   199  func (*SessionEvent) ClusterSessionIdMetaAttribute(meta int) string {
   200  	switch meta {
   201  	case 1:
   202  		return ""
   203  	case 2:
   204  		return ""
   205  	case 3:
   206  		return ""
   207  	case 4:
   208  		return "required"
   209  	}
   210  	return ""
   211  }
   212  
   213  func (*SessionEvent) ClusterSessionIdMinValue() int64 {
   214  	return math.MinInt64 + 1
   215  }
   216  
   217  func (*SessionEvent) ClusterSessionIdMaxValue() int64 {
   218  	return math.MaxInt64
   219  }
   220  
   221  func (*SessionEvent) ClusterSessionIdNullValue() int64 {
   222  	return math.MinInt64
   223  }
   224  
   225  func (*SessionEvent) CorrelationIdId() uint16 {
   226  	return 2
   227  }
   228  
   229  func (*SessionEvent) CorrelationIdSinceVersion() uint16 {
   230  	return 0
   231  }
   232  
   233  func (s *SessionEvent) CorrelationIdInActingVersion(actingVersion uint16) bool {
   234  	return actingVersion >= s.CorrelationIdSinceVersion()
   235  }
   236  
   237  func (*SessionEvent) CorrelationIdDeprecated() uint16 {
   238  	return 0
   239  }
   240  
   241  func (*SessionEvent) CorrelationIdMetaAttribute(meta int) string {
   242  	switch meta {
   243  	case 1:
   244  		return ""
   245  	case 2:
   246  		return ""
   247  	case 3:
   248  		return ""
   249  	case 4:
   250  		return "required"
   251  	}
   252  	return ""
   253  }
   254  
   255  func (*SessionEvent) CorrelationIdMinValue() int64 {
   256  	return math.MinInt64 + 1
   257  }
   258  
   259  func (*SessionEvent) CorrelationIdMaxValue() int64 {
   260  	return math.MaxInt64
   261  }
   262  
   263  func (*SessionEvent) CorrelationIdNullValue() int64 {
   264  	return math.MinInt64
   265  }
   266  
   267  func (*SessionEvent) LeadershipTermIdId() uint16 {
   268  	return 3
   269  }
   270  
   271  func (*SessionEvent) LeadershipTermIdSinceVersion() uint16 {
   272  	return 0
   273  }
   274  
   275  func (s *SessionEvent) LeadershipTermIdInActingVersion(actingVersion uint16) bool {
   276  	return actingVersion >= s.LeadershipTermIdSinceVersion()
   277  }
   278  
   279  func (*SessionEvent) LeadershipTermIdDeprecated() uint16 {
   280  	return 0
   281  }
   282  
   283  func (*SessionEvent) LeadershipTermIdMetaAttribute(meta int) string {
   284  	switch meta {
   285  	case 1:
   286  		return ""
   287  	case 2:
   288  		return ""
   289  	case 3:
   290  		return ""
   291  	case 4:
   292  		return "required"
   293  	}
   294  	return ""
   295  }
   296  
   297  func (*SessionEvent) LeadershipTermIdMinValue() int64 {
   298  	return math.MinInt64 + 1
   299  }
   300  
   301  func (*SessionEvent) LeadershipTermIdMaxValue() int64 {
   302  	return math.MaxInt64
   303  }
   304  
   305  func (*SessionEvent) LeadershipTermIdNullValue() int64 {
   306  	return math.MinInt64
   307  }
   308  
   309  func (*SessionEvent) LeaderMemberIdId() uint16 {
   310  	return 4
   311  }
   312  
   313  func (*SessionEvent) LeaderMemberIdSinceVersion() uint16 {
   314  	return 0
   315  }
   316  
   317  func (s *SessionEvent) LeaderMemberIdInActingVersion(actingVersion uint16) bool {
   318  	return actingVersion >= s.LeaderMemberIdSinceVersion()
   319  }
   320  
   321  func (*SessionEvent) LeaderMemberIdDeprecated() uint16 {
   322  	return 0
   323  }
   324  
   325  func (*SessionEvent) LeaderMemberIdMetaAttribute(meta int) string {
   326  	switch meta {
   327  	case 1:
   328  		return ""
   329  	case 2:
   330  		return ""
   331  	case 3:
   332  		return ""
   333  	case 4:
   334  		return "required"
   335  	}
   336  	return ""
   337  }
   338  
   339  func (*SessionEvent) LeaderMemberIdMinValue() int32 {
   340  	return math.MinInt32 + 1
   341  }
   342  
   343  func (*SessionEvent) LeaderMemberIdMaxValue() int32 {
   344  	return math.MaxInt32
   345  }
   346  
   347  func (*SessionEvent) LeaderMemberIdNullValue() int32 {
   348  	return math.MinInt32
   349  }
   350  
   351  func (*SessionEvent) CodeId() uint16 {
   352  	return 5
   353  }
   354  
   355  func (*SessionEvent) CodeSinceVersion() uint16 {
   356  	return 0
   357  }
   358  
   359  func (s *SessionEvent) CodeInActingVersion(actingVersion uint16) bool {
   360  	return actingVersion >= s.CodeSinceVersion()
   361  }
   362  
   363  func (*SessionEvent) CodeDeprecated() uint16 {
   364  	return 0
   365  }
   366  
   367  func (*SessionEvent) CodeMetaAttribute(meta int) string {
   368  	switch meta {
   369  	case 1:
   370  		return ""
   371  	case 2:
   372  		return ""
   373  	case 3:
   374  		return ""
   375  	case 4:
   376  		return "required"
   377  	}
   378  	return ""
   379  }
   380  
   381  func (*SessionEvent) VersionId() uint16 {
   382  	return 6
   383  }
   384  
   385  func (*SessionEvent) VersionSinceVersion() uint16 {
   386  	return 6
   387  }
   388  
   389  func (s *SessionEvent) VersionInActingVersion(actingVersion uint16) bool {
   390  	return actingVersion >= s.VersionSinceVersion()
   391  }
   392  
   393  func (*SessionEvent) VersionDeprecated() uint16 {
   394  	return 0
   395  }
   396  
   397  func (*SessionEvent) VersionMetaAttribute(meta int) string {
   398  	switch meta {
   399  	case 1:
   400  		return ""
   401  	case 2:
   402  		return ""
   403  	case 3:
   404  		return ""
   405  	case 4:
   406  		return "optional"
   407  	}
   408  	return ""
   409  }
   410  
   411  func (*SessionEvent) VersionMinValue() int32 {
   412  	return 1
   413  }
   414  
   415  func (*SessionEvent) VersionMaxValue() int32 {
   416  	return 16777215
   417  }
   418  
   419  func (*SessionEvent) VersionNullValue() int32 {
   420  	return 0
   421  }
   422  
   423  func (*SessionEvent) DetailMetaAttribute(meta int) string {
   424  	switch meta {
   425  	case 1:
   426  		return ""
   427  	case 2:
   428  		return ""
   429  	case 3:
   430  		return ""
   431  	case 4:
   432  		return "required"
   433  	}
   434  	return ""
   435  }
   436  
   437  func (*SessionEvent) DetailSinceVersion() uint16 {
   438  	return 0
   439  }
   440  
   441  func (s *SessionEvent) DetailInActingVersion(actingVersion uint16) bool {
   442  	return actingVersion >= s.DetailSinceVersion()
   443  }
   444  
   445  func (*SessionEvent) DetailDeprecated() uint16 {
   446  	return 0
   447  }
   448  
   449  func (SessionEvent) DetailCharacterEncoding() string {
   450  	return "US-ASCII"
   451  }
   452  
   453  func (SessionEvent) DetailHeaderLength() uint64 {
   454  	return 4
   455  }