github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/cluster/codecs/AdminResponse.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 AdminResponse struct { 13 ClusterSessionId int64 14 CorrelationId int64 15 RequestType AdminRequestTypeEnum 16 ResponseCode AdminResponseCodeEnum 17 Message []uint8 18 Payload []uint8 19 } 20 21 func (a *AdminResponse) Encode(_m *SbeGoMarshaller, _w io.Writer, doRangeCheck bool) error { 22 if doRangeCheck { 23 if err := a.RangeCheck(a.SbeSchemaVersion(), a.SbeSchemaVersion()); err != nil { 24 return err 25 } 26 } 27 if err := _m.WriteInt64(_w, a.ClusterSessionId); err != nil { 28 return err 29 } 30 if err := _m.WriteInt64(_w, a.CorrelationId); err != nil { 31 return err 32 } 33 if err := a.RequestType.Encode(_m, _w); err != nil { 34 return err 35 } 36 if err := a.ResponseCode.Encode(_m, _w); err != nil { 37 return err 38 } 39 if err := _m.WriteUint32(_w, uint32(len(a.Message))); err != nil { 40 return err 41 } 42 if err := _m.WriteBytes(_w, a.Message); err != nil { 43 return err 44 } 45 if err := _m.WriteUint32(_w, uint32(len(a.Payload))); err != nil { 46 return err 47 } 48 if err := _m.WriteBytes(_w, a.Payload); err != nil { 49 return err 50 } 51 return nil 52 } 53 54 func (a *AdminResponse) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error { 55 if !a.ClusterSessionIdInActingVersion(actingVersion) { 56 a.ClusterSessionId = a.ClusterSessionIdNullValue() 57 } else { 58 if err := _m.ReadInt64(_r, &a.ClusterSessionId); err != nil { 59 return err 60 } 61 } 62 if !a.CorrelationIdInActingVersion(actingVersion) { 63 a.CorrelationId = a.CorrelationIdNullValue() 64 } else { 65 if err := _m.ReadInt64(_r, &a.CorrelationId); err != nil { 66 return err 67 } 68 } 69 if a.RequestTypeInActingVersion(actingVersion) { 70 if err := a.RequestType.Decode(_m, _r, actingVersion); err != nil { 71 return err 72 } 73 } 74 if a.ResponseCodeInActingVersion(actingVersion) { 75 if err := a.ResponseCode.Decode(_m, _r, actingVersion); err != nil { 76 return err 77 } 78 } 79 if actingVersion > a.SbeSchemaVersion() && blockLength > a.SbeBlockLength() { 80 io.CopyN(ioutil.Discard, _r, int64(blockLength-a.SbeBlockLength())) 81 } 82 83 if a.MessageInActingVersion(actingVersion) { 84 var MessageLength uint32 85 if err := _m.ReadUint32(_r, &MessageLength); err != nil { 86 return err 87 } 88 if cap(a.Message) < int(MessageLength) { 89 a.Message = make([]uint8, MessageLength) 90 } 91 a.Message = a.Message[:MessageLength] 92 if err := _m.ReadBytes(_r, a.Message); err != nil { 93 return err 94 } 95 } 96 97 if a.PayloadInActingVersion(actingVersion) { 98 var PayloadLength uint32 99 if err := _m.ReadUint32(_r, &PayloadLength); err != nil { 100 return err 101 } 102 if cap(a.Payload) < int(PayloadLength) { 103 a.Payload = make([]uint8, PayloadLength) 104 } 105 a.Payload = a.Payload[:PayloadLength] 106 if err := _m.ReadBytes(_r, a.Payload); err != nil { 107 return err 108 } 109 } 110 if doRangeCheck { 111 if err := a.RangeCheck(actingVersion, a.SbeSchemaVersion()); err != nil { 112 return err 113 } 114 } 115 return nil 116 } 117 118 func (a *AdminResponse) RangeCheck(actingVersion uint16, schemaVersion uint16) error { 119 if a.ClusterSessionIdInActingVersion(actingVersion) { 120 if a.ClusterSessionId < a.ClusterSessionIdMinValue() || a.ClusterSessionId > a.ClusterSessionIdMaxValue() { 121 return fmt.Errorf("Range check failed on a.ClusterSessionId (%v < %v > %v)", a.ClusterSessionIdMinValue(), a.ClusterSessionId, a.ClusterSessionIdMaxValue()) 122 } 123 } 124 if a.CorrelationIdInActingVersion(actingVersion) { 125 if a.CorrelationId < a.CorrelationIdMinValue() || a.CorrelationId > a.CorrelationIdMaxValue() { 126 return fmt.Errorf("Range check failed on a.CorrelationId (%v < %v > %v)", a.CorrelationIdMinValue(), a.CorrelationId, a.CorrelationIdMaxValue()) 127 } 128 } 129 if err := a.RequestType.RangeCheck(actingVersion, schemaVersion); err != nil { 130 return err 131 } 132 if err := a.ResponseCode.RangeCheck(actingVersion, schemaVersion); err != nil { 133 return err 134 } 135 for idx, ch := range a.Message { 136 if ch > 127 { 137 return fmt.Errorf("a.Message[%d]=%d failed ASCII validation", idx, ch) 138 } 139 } 140 return nil 141 } 142 143 func AdminResponseInit(a *AdminResponse) { 144 return 145 } 146 147 func (*AdminResponse) SbeBlockLength() (blockLength uint16) { 148 return 24 149 } 150 151 func (*AdminResponse) SbeTemplateId() (templateId uint16) { 152 return 27 153 } 154 155 func (*AdminResponse) SbeSchemaId() (schemaId uint16) { 156 return 111 157 } 158 159 func (*AdminResponse) SbeSchemaVersion() (schemaVersion uint16) { 160 return 8 161 } 162 163 func (*AdminResponse) SbeSemanticType() (semanticType []byte) { 164 return []byte("") 165 } 166 167 func (*AdminResponse) ClusterSessionIdId() uint16 { 168 return 1 169 } 170 171 func (*AdminResponse) ClusterSessionIdSinceVersion() uint16 { 172 return 0 173 } 174 175 func (a *AdminResponse) ClusterSessionIdInActingVersion(actingVersion uint16) bool { 176 return actingVersion >= a.ClusterSessionIdSinceVersion() 177 } 178 179 func (*AdminResponse) ClusterSessionIdDeprecated() uint16 { 180 return 0 181 } 182 183 func (*AdminResponse) ClusterSessionIdMetaAttribute(meta int) string { 184 switch meta { 185 case 1: 186 return "" 187 case 2: 188 return "" 189 case 3: 190 return "" 191 case 4: 192 return "required" 193 } 194 return "" 195 } 196 197 func (*AdminResponse) ClusterSessionIdMinValue() int64 { 198 return math.MinInt64 + 1 199 } 200 201 func (*AdminResponse) ClusterSessionIdMaxValue() int64 { 202 return math.MaxInt64 203 } 204 205 func (*AdminResponse) ClusterSessionIdNullValue() int64 { 206 return math.MinInt64 207 } 208 209 func (*AdminResponse) CorrelationIdId() uint16 { 210 return 2 211 } 212 213 func (*AdminResponse) CorrelationIdSinceVersion() uint16 { 214 return 0 215 } 216 217 func (a *AdminResponse) CorrelationIdInActingVersion(actingVersion uint16) bool { 218 return actingVersion >= a.CorrelationIdSinceVersion() 219 } 220 221 func (*AdminResponse) CorrelationIdDeprecated() uint16 { 222 return 0 223 } 224 225 func (*AdminResponse) CorrelationIdMetaAttribute(meta int) string { 226 switch meta { 227 case 1: 228 return "" 229 case 2: 230 return "" 231 case 3: 232 return "" 233 case 4: 234 return "required" 235 } 236 return "" 237 } 238 239 func (*AdminResponse) CorrelationIdMinValue() int64 { 240 return math.MinInt64 + 1 241 } 242 243 func (*AdminResponse) CorrelationIdMaxValue() int64 { 244 return math.MaxInt64 245 } 246 247 func (*AdminResponse) CorrelationIdNullValue() int64 { 248 return math.MinInt64 249 } 250 251 func (*AdminResponse) RequestTypeId() uint16 { 252 return 3 253 } 254 255 func (*AdminResponse) RequestTypeSinceVersion() uint16 { 256 return 0 257 } 258 259 func (a *AdminResponse) RequestTypeInActingVersion(actingVersion uint16) bool { 260 return actingVersion >= a.RequestTypeSinceVersion() 261 } 262 263 func (*AdminResponse) RequestTypeDeprecated() uint16 { 264 return 0 265 } 266 267 func (*AdminResponse) RequestTypeMetaAttribute(meta int) string { 268 switch meta { 269 case 1: 270 return "" 271 case 2: 272 return "" 273 case 3: 274 return "" 275 case 4: 276 return "required" 277 } 278 return "" 279 } 280 281 func (*AdminResponse) ResponseCodeId() uint16 { 282 return 4 283 } 284 285 func (*AdminResponse) ResponseCodeSinceVersion() uint16 { 286 return 0 287 } 288 289 func (a *AdminResponse) ResponseCodeInActingVersion(actingVersion uint16) bool { 290 return actingVersion >= a.ResponseCodeSinceVersion() 291 } 292 293 func (*AdminResponse) ResponseCodeDeprecated() uint16 { 294 return 0 295 } 296 297 func (*AdminResponse) ResponseCodeMetaAttribute(meta int) string { 298 switch meta { 299 case 1: 300 return "" 301 case 2: 302 return "" 303 case 3: 304 return "" 305 case 4: 306 return "required" 307 } 308 return "" 309 } 310 311 func (*AdminResponse) MessageMetaAttribute(meta int) string { 312 switch meta { 313 case 1: 314 return "" 315 case 2: 316 return "" 317 case 3: 318 return "" 319 case 4: 320 return "required" 321 } 322 return "" 323 } 324 325 func (*AdminResponse) MessageSinceVersion() uint16 { 326 return 0 327 } 328 329 func (a *AdminResponse) MessageInActingVersion(actingVersion uint16) bool { 330 return actingVersion >= a.MessageSinceVersion() 331 } 332 333 func (*AdminResponse) MessageDeprecated() uint16 { 334 return 0 335 } 336 337 func (AdminResponse) MessageCharacterEncoding() string { 338 return "US-ASCII" 339 } 340 341 func (AdminResponse) MessageHeaderLength() uint64 { 342 return 4 343 } 344 345 func (*AdminResponse) PayloadMetaAttribute(meta int) string { 346 switch meta { 347 case 1: 348 return "" 349 case 2: 350 return "" 351 case 3: 352 return "" 353 case 4: 354 return "required" 355 } 356 return "" 357 } 358 359 func (*AdminResponse) PayloadSinceVersion() uint16 { 360 return 0 361 } 362 363 func (a *AdminResponse) PayloadInActingVersion(actingVersion uint16) bool { 364 return actingVersion >= a.PayloadSinceVersion() 365 } 366 367 func (*AdminResponse) PayloadDeprecated() uint16 { 368 return 0 369 } 370 371 func (AdminResponse) PayloadCharacterEncoding() string { 372 return "null" 373 } 374 375 func (AdminResponse) PayloadHeaderLength() uint64 { 376 return 4 377 }