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