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 }