github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/archive/codecs/Challenge.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 Challenge struct {
    13  	ControlSessionId int64
    14  	CorrelationId    int64
    15  	Version          int32
    16  	EncodedChallenge []uint8
    17  }
    18  
    19  func (c *Challenge) 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.ControlSessionId); err != nil {
    26  		return err
    27  	}
    28  	if err := _m.WriteInt64(_w, c.CorrelationId); err != nil {
    29  		return err
    30  	}
    31  	if err := _m.WriteInt32(_w, c.Version); err != nil {
    32  		return err
    33  	}
    34  	if err := _m.WriteUint32(_w, uint32(len(c.EncodedChallenge))); err != nil {
    35  		return err
    36  	}
    37  	if err := _m.WriteBytes(_w, c.EncodedChallenge); err != nil {
    38  		return err
    39  	}
    40  	return nil
    41  }
    42  
    43  func (c *Challenge) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16, blockLength uint16, doRangeCheck bool) error {
    44  	if !c.ControlSessionIdInActingVersion(actingVersion) {
    45  		c.ControlSessionId = c.ControlSessionIdNullValue()
    46  	} else {
    47  		if err := _m.ReadInt64(_r, &c.ControlSessionId); err != nil {
    48  			return err
    49  		}
    50  	}
    51  	if !c.CorrelationIdInActingVersion(actingVersion) {
    52  		c.CorrelationId = c.CorrelationIdNullValue()
    53  	} else {
    54  		if err := _m.ReadInt64(_r, &c.CorrelationId); err != nil {
    55  			return err
    56  		}
    57  	}
    58  	if !c.VersionInActingVersion(actingVersion) {
    59  		c.Version = c.VersionNullValue()
    60  	} else {
    61  		if err := _m.ReadInt32(_r, &c.Version); err != nil {
    62  			return err
    63  		}
    64  	}
    65  	if actingVersion > c.SbeSchemaVersion() && blockLength > c.SbeBlockLength() {
    66  		io.CopyN(ioutil.Discard, _r, int64(blockLength-c.SbeBlockLength()))
    67  	}
    68  
    69  	if c.EncodedChallengeInActingVersion(actingVersion) {
    70  		var EncodedChallengeLength uint32
    71  		if err := _m.ReadUint32(_r, &EncodedChallengeLength); err != nil {
    72  			return err
    73  		}
    74  		if cap(c.EncodedChallenge) < int(EncodedChallengeLength) {
    75  			c.EncodedChallenge = make([]uint8, EncodedChallengeLength)
    76  		}
    77  		c.EncodedChallenge = c.EncodedChallenge[:EncodedChallengeLength]
    78  		if err := _m.ReadBytes(_r, c.EncodedChallenge); err != nil {
    79  			return err
    80  		}
    81  	}
    82  	if doRangeCheck {
    83  		if err := c.RangeCheck(actingVersion, c.SbeSchemaVersion()); err != nil {
    84  			return err
    85  		}
    86  	}
    87  	return nil
    88  }
    89  
    90  func (c *Challenge) RangeCheck(actingVersion uint16, schemaVersion uint16) error {
    91  	if c.ControlSessionIdInActingVersion(actingVersion) {
    92  		if c.ControlSessionId < c.ControlSessionIdMinValue() || c.ControlSessionId > c.ControlSessionIdMaxValue() {
    93  			return fmt.Errorf("Range check failed on c.ControlSessionId (%v < %v > %v)", c.ControlSessionIdMinValue(), c.ControlSessionId, c.ControlSessionIdMaxValue())
    94  		}
    95  	}
    96  	if c.CorrelationIdInActingVersion(actingVersion) {
    97  		if c.CorrelationId < c.CorrelationIdMinValue() || c.CorrelationId > c.CorrelationIdMaxValue() {
    98  			return fmt.Errorf("Range check failed on c.CorrelationId (%v < %v > %v)", c.CorrelationIdMinValue(), c.CorrelationId, c.CorrelationIdMaxValue())
    99  		}
   100  	}
   101  	if c.VersionInActingVersion(actingVersion) {
   102  		if c.Version != c.VersionNullValue() && (c.Version < c.VersionMinValue() || c.Version > c.VersionMaxValue()) {
   103  			return fmt.Errorf("Range check failed on c.Version (%v < %v > %v)", c.VersionMinValue(), c.Version, c.VersionMaxValue())
   104  		}
   105  	}
   106  	return nil
   107  }
   108  
   109  func ChallengeInit(c *Challenge) {
   110  	c.Version = 0
   111  	return
   112  }
   113  
   114  func (*Challenge) SbeBlockLength() (blockLength uint16) {
   115  	return 20
   116  }
   117  
   118  func (*Challenge) SbeTemplateId() (templateId uint16) {
   119  	return 59
   120  }
   121  
   122  func (*Challenge) SbeSchemaId() (schemaId uint16) {
   123  	return 101
   124  }
   125  
   126  func (*Challenge) SbeSchemaVersion() (schemaVersion uint16) {
   127  	return 6
   128  }
   129  
   130  func (*Challenge) SbeSemanticType() (semanticType []byte) {
   131  	return []byte("")
   132  }
   133  
   134  func (*Challenge) ControlSessionIdId() uint16 {
   135  	return 1
   136  }
   137  
   138  func (*Challenge) ControlSessionIdSinceVersion() uint16 {
   139  	return 0
   140  }
   141  
   142  func (c *Challenge) ControlSessionIdInActingVersion(actingVersion uint16) bool {
   143  	return actingVersion >= c.ControlSessionIdSinceVersion()
   144  }
   145  
   146  func (*Challenge) ControlSessionIdDeprecated() uint16 {
   147  	return 0
   148  }
   149  
   150  func (*Challenge) ControlSessionIdMetaAttribute(meta int) string {
   151  	switch meta {
   152  	case 1:
   153  		return ""
   154  	case 2:
   155  		return ""
   156  	case 3:
   157  		return ""
   158  	case 4:
   159  		return "required"
   160  	}
   161  	return ""
   162  }
   163  
   164  func (*Challenge) ControlSessionIdMinValue() int64 {
   165  	return math.MinInt64 + 1
   166  }
   167  
   168  func (*Challenge) ControlSessionIdMaxValue() int64 {
   169  	return math.MaxInt64
   170  }
   171  
   172  func (*Challenge) ControlSessionIdNullValue() int64 {
   173  	return math.MinInt64
   174  }
   175  
   176  func (*Challenge) CorrelationIdId() uint16 {
   177  	return 2
   178  }
   179  
   180  func (*Challenge) CorrelationIdSinceVersion() uint16 {
   181  	return 0
   182  }
   183  
   184  func (c *Challenge) CorrelationIdInActingVersion(actingVersion uint16) bool {
   185  	return actingVersion >= c.CorrelationIdSinceVersion()
   186  }
   187  
   188  func (*Challenge) CorrelationIdDeprecated() uint16 {
   189  	return 0
   190  }
   191  
   192  func (*Challenge) CorrelationIdMetaAttribute(meta int) string {
   193  	switch meta {
   194  	case 1:
   195  		return ""
   196  	case 2:
   197  		return ""
   198  	case 3:
   199  		return ""
   200  	case 4:
   201  		return "required"
   202  	}
   203  	return ""
   204  }
   205  
   206  func (*Challenge) CorrelationIdMinValue() int64 {
   207  	return math.MinInt64 + 1
   208  }
   209  
   210  func (*Challenge) CorrelationIdMaxValue() int64 {
   211  	return math.MaxInt64
   212  }
   213  
   214  func (*Challenge) CorrelationIdNullValue() int64 {
   215  	return math.MinInt64
   216  }
   217  
   218  func (*Challenge) VersionId() uint16 {
   219  	return 3
   220  }
   221  
   222  func (*Challenge) VersionSinceVersion() uint16 {
   223  	return 0
   224  }
   225  
   226  func (c *Challenge) VersionInActingVersion(actingVersion uint16) bool {
   227  	return actingVersion >= c.VersionSinceVersion()
   228  }
   229  
   230  func (*Challenge) VersionDeprecated() uint16 {
   231  	return 0
   232  }
   233  
   234  func (*Challenge) VersionMetaAttribute(meta int) string {
   235  	switch meta {
   236  	case 1:
   237  		return ""
   238  	case 2:
   239  		return ""
   240  	case 3:
   241  		return ""
   242  	case 4:
   243  		return "optional"
   244  	}
   245  	return ""
   246  }
   247  
   248  func (*Challenge) VersionMinValue() int32 {
   249  	return 2
   250  }
   251  
   252  func (*Challenge) VersionMaxValue() int32 {
   253  	return 16777215
   254  }
   255  
   256  func (*Challenge) VersionNullValue() int32 {
   257  	return 0
   258  }
   259  
   260  func (*Challenge) EncodedChallengeMetaAttribute(meta int) string {
   261  	switch meta {
   262  	case 1:
   263  		return ""
   264  	case 2:
   265  		return ""
   266  	case 3:
   267  		return ""
   268  	case 4:
   269  		return "required"
   270  	}
   271  	return ""
   272  }
   273  
   274  func (*Challenge) EncodedChallengeSinceVersion() uint16 {
   275  	return 0
   276  }
   277  
   278  func (c *Challenge) EncodedChallengeInActingVersion(actingVersion uint16) bool {
   279  	return actingVersion >= c.EncodedChallengeSinceVersion()
   280  }
   281  
   282  func (*Challenge) EncodedChallengeDeprecated() uint16 {
   283  	return 0
   284  }
   285  
   286  func (Challenge) EncodedChallengeCharacterEncoding() string {
   287  	return "null"
   288  }
   289  
   290  func (Challenge) EncodedChallengeHeaderLength() uint64 {
   291  	return 4
   292  }