github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/cluster/codecs/ClusterMembers.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 ClusterMembers struct {
    13  	MemberId       int32
    14  	HighMemberId   int32
    15  	ClusterMembers []uint8
    16  }
    17  
    18  func (c *ClusterMembers) 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.WriteInt32(_w, c.MemberId); err != nil {
    25  		return err
    26  	}
    27  	if err := _m.WriteInt32(_w, c.HighMemberId); err != nil {
    28  		return err
    29  	}
    30  	if err := _m.WriteUint32(_w, uint32(len(c.ClusterMembers))); err != nil {
    31  		return err
    32  	}
    33  	if err := _m.WriteBytes(_w, c.ClusterMembers); err != nil {
    34  		return err
    35  	}
    36  	return nil
    37  }
    38  
    39  func (c *ClusterMembers) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error {
    40  	if !c.MemberIdInActingVersion(actingVersion) {
    41  		c.MemberId = c.MemberIdNullValue()
    42  	} else {
    43  		if err := _m.ReadInt32(_r, &c.MemberId); err != nil {
    44  			return err
    45  		}
    46  	}
    47  	if !c.HighMemberIdInActingVersion(actingVersion) {
    48  		c.HighMemberId = c.HighMemberIdNullValue()
    49  	} else {
    50  		if err := _m.ReadInt32(_r, &c.HighMemberId); err != nil {
    51  			return err
    52  		}
    53  	}
    54  	if actingVersion > c.SbeSchemaVersion() && blockLength > c.SbeBlockLength() {
    55  		io.CopyN(ioutil.Discard, _r, int64(blockLength-c.SbeBlockLength()))
    56  	}
    57  
    58  	if c.ClusterMembersInActingVersion(actingVersion) {
    59  		var ClusterMembersLength uint32
    60  		if err := _m.ReadUint32(_r, &ClusterMembersLength); err != nil {
    61  			return err
    62  		}
    63  		if cap(c.ClusterMembers) < int(ClusterMembersLength) {
    64  			c.ClusterMembers = make([]uint8, ClusterMembersLength)
    65  		}
    66  		c.ClusterMembers = c.ClusterMembers[:ClusterMembersLength]
    67  		if err := _m.ReadBytes(_r, c.ClusterMembers); err != nil {
    68  			return err
    69  		}
    70  	}
    71  	if doRangeCheck {
    72  		if err := c.RangeCheck(actingVersion, c.SbeSchemaVersion()); err != nil {
    73  			return err
    74  		}
    75  	}
    76  	return nil
    77  }
    78  
    79  func (c *ClusterMembers) RangeCheck(actingVersion uint16, schemaVersion uint16) error {
    80  	if c.MemberIdInActingVersion(actingVersion) {
    81  		if c.MemberId < c.MemberIdMinValue() || c.MemberId > c.MemberIdMaxValue() {
    82  			return fmt.Errorf("Range check failed on c.MemberId (%v < %v > %v)", c.MemberIdMinValue(), c.MemberId, c.MemberIdMaxValue())
    83  		}
    84  	}
    85  	if c.HighMemberIdInActingVersion(actingVersion) {
    86  		if c.HighMemberId < c.HighMemberIdMinValue() || c.HighMemberId > c.HighMemberIdMaxValue() {
    87  			return fmt.Errorf("Range check failed on c.HighMemberId (%v < %v > %v)", c.HighMemberIdMinValue(), c.HighMemberId, c.HighMemberIdMaxValue())
    88  		}
    89  	}
    90  	for idx, ch := range c.ClusterMembers {
    91  		if ch > 127 {
    92  			return fmt.Errorf("c.ClusterMembers[%d]=%d failed ASCII validation", idx, ch)
    93  		}
    94  	}
    95  	return nil
    96  }
    97  
    98  func ClusterMembersInit(c *ClusterMembers) {
    99  	return
   100  }
   101  
   102  func (*ClusterMembers) SbeBlockLength() (blockLength uint16) {
   103  	return 8
   104  }
   105  
   106  func (*ClusterMembers) SbeTemplateId() (templateId uint16) {
   107  	return 106
   108  }
   109  
   110  func (*ClusterMembers) SbeSchemaId() (schemaId uint16) {
   111  	return 111
   112  }
   113  
   114  func (*ClusterMembers) SbeSchemaVersion() (schemaVersion uint16) {
   115  	return 8
   116  }
   117  
   118  func (*ClusterMembers) SbeSemanticType() (semanticType []byte) {
   119  	return []byte("")
   120  }
   121  
   122  func (*ClusterMembers) MemberIdId() uint16 {
   123  	return 1
   124  }
   125  
   126  func (*ClusterMembers) MemberIdSinceVersion() uint16 {
   127  	return 0
   128  }
   129  
   130  func (c *ClusterMembers) MemberIdInActingVersion(actingVersion uint16) bool {
   131  	return actingVersion >= c.MemberIdSinceVersion()
   132  }
   133  
   134  func (*ClusterMembers) MemberIdDeprecated() uint16 {
   135  	return 0
   136  }
   137  
   138  func (*ClusterMembers) MemberIdMetaAttribute(meta int) string {
   139  	switch meta {
   140  	case 1:
   141  		return ""
   142  	case 2:
   143  		return ""
   144  	case 3:
   145  		return ""
   146  	case 4:
   147  		return "required"
   148  	}
   149  	return ""
   150  }
   151  
   152  func (*ClusterMembers) MemberIdMinValue() int32 {
   153  	return math.MinInt32 + 1
   154  }
   155  
   156  func (*ClusterMembers) MemberIdMaxValue() int32 {
   157  	return math.MaxInt32
   158  }
   159  
   160  func (*ClusterMembers) MemberIdNullValue() int32 {
   161  	return math.MinInt32
   162  }
   163  
   164  func (*ClusterMembers) HighMemberIdId() uint16 {
   165  	return 2
   166  }
   167  
   168  func (*ClusterMembers) HighMemberIdSinceVersion() uint16 {
   169  	return 0
   170  }
   171  
   172  func (c *ClusterMembers) HighMemberIdInActingVersion(actingVersion uint16) bool {
   173  	return actingVersion >= c.HighMemberIdSinceVersion()
   174  }
   175  
   176  func (*ClusterMembers) HighMemberIdDeprecated() uint16 {
   177  	return 0
   178  }
   179  
   180  func (*ClusterMembers) HighMemberIdMetaAttribute(meta int) string {
   181  	switch meta {
   182  	case 1:
   183  		return ""
   184  	case 2:
   185  		return ""
   186  	case 3:
   187  		return ""
   188  	case 4:
   189  		return "required"
   190  	}
   191  	return ""
   192  }
   193  
   194  func (*ClusterMembers) HighMemberIdMinValue() int32 {
   195  	return math.MinInt32 + 1
   196  }
   197  
   198  func (*ClusterMembers) HighMemberIdMaxValue() int32 {
   199  	return math.MaxInt32
   200  }
   201  
   202  func (*ClusterMembers) HighMemberIdNullValue() int32 {
   203  	return math.MinInt32
   204  }
   205  
   206  func (*ClusterMembers) ClusterMembersMetaAttribute(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 (*ClusterMembers) ClusterMembersSinceVersion() uint16 {
   221  	return 0
   222  }
   223  
   224  func (c *ClusterMembers) ClusterMembersInActingVersion(actingVersion uint16) bool {
   225  	return actingVersion >= c.ClusterMembersSinceVersion()
   226  }
   227  
   228  func (*ClusterMembers) ClusterMembersDeprecated() uint16 {
   229  	return 0
   230  }
   231  
   232  func (ClusterMembers) ClusterMembersCharacterEncoding() string {
   233  	return "US-ASCII"
   234  }
   235  
   236  func (ClusterMembers) ClusterMembersHeaderLength() uint64 {
   237  	return 4
   238  }