packet_decoder.go 651 B

12345678910111213141516171819202122232425262728293031323334
  1. package protocol
  2. type packetDecoder interface {
  3. remaining() int
  4. // primitives
  5. getInt8() (int8, error)
  6. getInt16() (int16, error)
  7. getInt32() (int32, error)
  8. getInt64() (int64, error)
  9. // arrays
  10. getInt32Array() ([]int32, error)
  11. getInt64Array() ([]int64, error)
  12. getArrayCount() (int, error)
  13. // misc
  14. getError() (KError, error)
  15. getString() (string, error)
  16. getBytes() ([]byte, error)
  17. getSubset(length int) (packetDecoder, error)
  18. // stackable
  19. push(in pushDecoder) error
  20. pushLength32() error
  21. pushCRC32() error
  22. pop() error
  23. }
  24. type pushDecoder interface {
  25. saveOffset(in int)
  26. reserveLength() int
  27. check(curOffset int, buf []byte) error
  28. }