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 }