github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/archive/codecs/RecordingDescriptorHeader.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 RecordingDescriptorHeader struct { 13 Length int32 14 State RecordingStateEnum 15 Checksum int32 16 Reserved int8 17 } 18 19 func (r *RecordingDescriptorHeader) Encode(_m *SbeGoMarshaller, _w io.Writer, doRangeCheck bool) error { 20 if doRangeCheck { 21 if err := r.RangeCheck(r.SbeSchemaVersion(), r.SbeSchemaVersion()); err != nil { 22 return err 23 } 24 } 25 if err := _m.WriteInt32(_w, r.Length); err != nil { 26 return err 27 } 28 if err := r.State.Encode(_m, _w); err != nil { 29 return err 30 } 31 if err := _m.WriteInt32(_w, r.Checksum); err != nil { 32 return err 33 } 34 35 for i := 0; i < 19; i++ { 36 if err := _m.WriteUint8(_w, uint8(0)); err != nil { 37 return err 38 } 39 } 40 if err := _m.WriteInt8(_w, r.Reserved); err != nil { 41 return err 42 } 43 return nil 44 } 45 46 func (r *RecordingDescriptorHeader) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error { 47 if !r.LengthInActingVersion(actingVersion) { 48 r.Length = r.LengthNullValue() 49 } else { 50 if err := _m.ReadInt32(_r, &r.Length); err != nil { 51 return err 52 } 53 } 54 if r.StateInActingVersion(actingVersion) { 55 if err := r.State.Decode(_m, _r, actingVersion); err != nil { 56 return err 57 } 58 } 59 if !r.ChecksumInActingVersion(actingVersion) { 60 r.Checksum = r.ChecksumNullValue() 61 } else { 62 if err := _m.ReadInt32(_r, &r.Checksum); err != nil { 63 return err 64 } 65 } 66 io.CopyN(ioutil.Discard, _r, 19) 67 if !r.ReservedInActingVersion(actingVersion) { 68 r.Reserved = r.ReservedNullValue() 69 } else { 70 if err := _m.ReadInt8(_r, &r.Reserved); err != nil { 71 return err 72 } 73 } 74 if actingVersion > r.SbeSchemaVersion() && blockLength > r.SbeBlockLength() { 75 io.CopyN(ioutil.Discard, _r, int64(blockLength-r.SbeBlockLength())) 76 } 77 if doRangeCheck { 78 if err := r.RangeCheck(actingVersion, r.SbeSchemaVersion()); err != nil { 79 return err 80 } 81 } 82 return nil 83 } 84 85 func (r *RecordingDescriptorHeader) RangeCheck(actingVersion uint16, schemaVersion uint16) error { 86 if r.LengthInActingVersion(actingVersion) { 87 if r.Length < r.LengthMinValue() || r.Length > r.LengthMaxValue() { 88 return fmt.Errorf("Range check failed on r.Length (%v < %v > %v)", r.LengthMinValue(), r.Length, r.LengthMaxValue()) 89 } 90 } 91 if err := r.State.RangeCheck(actingVersion, schemaVersion); err != nil { 92 return err 93 } 94 if r.ChecksumInActingVersion(actingVersion) { 95 if r.Checksum < r.ChecksumMinValue() || r.Checksum > r.ChecksumMaxValue() { 96 return fmt.Errorf("Range check failed on r.Checksum (%v < %v > %v)", r.ChecksumMinValue(), r.Checksum, r.ChecksumMaxValue()) 97 } 98 } 99 if r.ReservedInActingVersion(actingVersion) { 100 if r.Reserved < r.ReservedMinValue() || r.Reserved > r.ReservedMaxValue() { 101 return fmt.Errorf("Range check failed on r.Reserved (%v < %v > %v)", r.ReservedMinValue(), r.Reserved, r.ReservedMaxValue()) 102 } 103 } 104 return nil 105 } 106 107 func RecordingDescriptorHeaderInit(r *RecordingDescriptorHeader) { 108 return 109 } 110 111 func (*RecordingDescriptorHeader) SbeBlockLength() (blockLength uint16) { 112 return 32 113 } 114 115 func (*RecordingDescriptorHeader) SbeTemplateId() (templateId uint16) { 116 return 21 117 } 118 119 func (*RecordingDescriptorHeader) SbeSchemaId() (schemaId uint16) { 120 return 101 121 } 122 123 func (*RecordingDescriptorHeader) SbeSchemaVersion() (schemaVersion uint16) { 124 return 6 125 } 126 127 func (*RecordingDescriptorHeader) SbeSemanticType() (semanticType []byte) { 128 return []byte("") 129 } 130 131 func (*RecordingDescriptorHeader) LengthId() uint16 { 132 return 1 133 } 134 135 func (*RecordingDescriptorHeader) LengthSinceVersion() uint16 { 136 return 0 137 } 138 139 func (r *RecordingDescriptorHeader) LengthInActingVersion(actingVersion uint16) bool { 140 return actingVersion >= r.LengthSinceVersion() 141 } 142 143 func (*RecordingDescriptorHeader) LengthDeprecated() uint16 { 144 return 0 145 } 146 147 func (*RecordingDescriptorHeader) LengthMetaAttribute(meta int) string { 148 switch meta { 149 case 1: 150 return "" 151 case 2: 152 return "" 153 case 3: 154 return "" 155 case 4: 156 return "required" 157 } 158 return "" 159 } 160 161 func (*RecordingDescriptorHeader) LengthMinValue() int32 { 162 return math.MinInt32 + 1 163 } 164 165 func (*RecordingDescriptorHeader) LengthMaxValue() int32 { 166 return math.MaxInt32 167 } 168 169 func (*RecordingDescriptorHeader) LengthNullValue() int32 { 170 return math.MinInt32 171 } 172 173 func (*RecordingDescriptorHeader) StateId() uint16 { 174 return 2 175 } 176 177 func (*RecordingDescriptorHeader) StateSinceVersion() uint16 { 178 return 0 179 } 180 181 func (r *RecordingDescriptorHeader) StateInActingVersion(actingVersion uint16) bool { 182 return actingVersion >= r.StateSinceVersion() 183 } 184 185 func (*RecordingDescriptorHeader) StateDeprecated() uint16 { 186 return 0 187 } 188 189 func (*RecordingDescriptorHeader) StateMetaAttribute(meta int) string { 190 switch meta { 191 case 1: 192 return "" 193 case 2: 194 return "" 195 case 3: 196 return "" 197 case 4: 198 return "required" 199 } 200 return "" 201 } 202 203 func (*RecordingDescriptorHeader) ChecksumId() uint16 { 204 return 4 205 } 206 207 func (*RecordingDescriptorHeader) ChecksumSinceVersion() uint16 { 208 return 0 209 } 210 211 func (r *RecordingDescriptorHeader) ChecksumInActingVersion(actingVersion uint16) bool { 212 return actingVersion >= r.ChecksumSinceVersion() 213 } 214 215 func (*RecordingDescriptorHeader) ChecksumDeprecated() uint16 { 216 return 0 217 } 218 219 func (*RecordingDescriptorHeader) ChecksumMetaAttribute(meta int) string { 220 switch meta { 221 case 1: 222 return "" 223 case 2: 224 return "" 225 case 3: 226 return "" 227 case 4: 228 return "required" 229 } 230 return "" 231 } 232 233 func (*RecordingDescriptorHeader) ChecksumMinValue() int32 { 234 return math.MinInt32 + 1 235 } 236 237 func (*RecordingDescriptorHeader) ChecksumMaxValue() int32 { 238 return math.MaxInt32 239 } 240 241 func (*RecordingDescriptorHeader) ChecksumNullValue() int32 { 242 return math.MinInt32 243 } 244 245 func (*RecordingDescriptorHeader) ReservedId() uint16 { 246 return 3 247 } 248 249 func (*RecordingDescriptorHeader) ReservedSinceVersion() uint16 { 250 return 0 251 } 252 253 func (r *RecordingDescriptorHeader) ReservedInActingVersion(actingVersion uint16) bool { 254 return actingVersion >= r.ReservedSinceVersion() 255 } 256 257 func (*RecordingDescriptorHeader) ReservedDeprecated() uint16 { 258 return 0 259 } 260 261 func (*RecordingDescriptorHeader) ReservedMetaAttribute(meta int) string { 262 switch meta { 263 case 1: 264 return "" 265 case 2: 266 return "" 267 case 3: 268 return "" 269 case 4: 270 return "required" 271 } 272 return "" 273 } 274 275 func (*RecordingDescriptorHeader) ReservedMinValue() int8 { 276 return math.MinInt8 + 1 277 } 278 279 func (*RecordingDescriptorHeader) ReservedMaxValue() int8 { 280 return math.MaxInt8 281 } 282 283 func (*RecordingDescriptorHeader) ReservedNullValue() int8 { 284 return math.MinInt8 285 }