binary

package module
v0.0.0-...-b2d738f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 6, 2021 License: MIT Imports: 2 Imported by: 1

README

binary

Сериализация примитивных типов в набор байтов для последующей отправки по сети.

Модуль, необходимый для работы с бинарными протоколами движков GreenWix

Установка

go get github.com/GreenWix/binary

Примеры

package main

import "github.com/GreenWix/binary" 

func main(){
    // int + byte + byte array
    w := binary.AcquireWriter(4 + 1 + 5)
    w.WriteSignedInt32(5835)
    w.WriteByte(124)
    w.WriteByteArray(4, []byte{ 0xAA, 0xBB, 0xCC, 0xDD })
    
    sendToServer(w.Buffer())

    binary.ReleaseWriter(w)
}

func sendToServer(buf []byte){
    // ...code
}
package main

import "github.com/GreenWix/binary" 

func main(){
    r := binary.AcquireReader(getBytesFromServer())

    someInt, err := r.ReadSignedInt32()
    checkErr(err)

    someByte, err := r.ReadByte()
    checkErr(err)

    someByteArrayLen, someByteArray, err := r.ReadByteArray()
    checkErr(err)

    doSomething(someInt, someByte, someByteArrayLen, someByteArray)

    binary.ReleaseReader(r)
}

func checkErr(err error){
    // ...code
}

func getBytesFromServer() ([]byte, int){
    return []byte{ 0x11, 0x22, 0x33, 0x44, 0x55, 0x04, 0x77, 0x88, 0x99, 0xAA }, 10
}

func doSomething(someInt int32, someByte byte, someByteArrayLen byte, someByteArray []byte){
    // ...code
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ReleaseReader

func ReleaseReader(r *Reader)

func ReleaseWriter

func ReleaseWriter(w *Writer)

Types

type Reader

type Reader struct {
	// contains filtered or unexported fields
}

func AcquireReader

func AcquireReader(buf []byte, n int) (r *Reader)

func (*Reader) Buffer

func (r *Reader) Buffer() []byte

func (*Reader) Read

func (r *Reader) Read(n int) ([]byte, error)

func (*Reader) ReadByte

func (r *Reader) ReadByte() (num byte, err error)

func (*Reader) ReadByteArray

func (r *Reader) ReadByteArray() (n byte, ar []byte, err error)

func (*Reader) ReadNumber

func (r *Reader) ReadNumber(n int) (num int64, err error)

func (*Reader) ReadSignedInt32

func (r *Reader) ReadSignedInt32() (num int32, err error)

func (*Reader) ReadSignedLong

func (r *Reader) ReadSignedLong() (num int64, err error)

func (*Reader) ReadSignedShort

func (r *Reader) ReadSignedShort() (num int16, err error)

func (*Reader) ReadUnsignedInt32

func (r *Reader) ReadUnsignedInt32() (num uint32, err error)

func (*Reader) ReadUnsignedLong

func (r *Reader) ReadUnsignedLong() (num uint64, err error)

func (*Reader) ReadUnsignedShort

func (r *Reader) ReadUnsignedShort() (num uint16, err error)

func (*Reader) Remaining

func (r *Reader) Remaining() []byte

func (*Reader) RemainingAmount

func (r *Reader) RemainingAmount() int

func (*Reader) Size

func (r *Reader) Size() int

type Writer

type Writer struct {
	// contains filtered or unexported fields
}

func AcquireWriter

func AcquireWriter(cap int) (w *Writer)

func (*Writer) Buffer

func (w *Writer) Buffer() []byte

func (*Writer) Write

func (w *Writer) Write(n int, p []byte)

func (*Writer) WriteByte

func (w *Writer) WriteByte(number byte)

Данная структура не является io.ByteWriter!!! noinspection GoStandardMethods

func (*Writer) WriteByteArray

func (w *Writer) WriteByteArray(n int, p []byte)

func (*Writer) WriteNumber

func (w *Writer) WriteNumber(num int64, n int) error

func (*Writer) WriteSignedInt32

func (w *Writer) WriteSignedInt32(number int32)

func (*Writer) WriteSignedLong

func (w *Writer) WriteSignedLong(number int64)

func (*Writer) WriteSignedShort

func (w *Writer) WriteSignedShort(number int16)

func (*Writer) WriteUnsignedInt32

func (w *Writer) WriteUnsignedInt32(number uint32)

func (*Writer) WriteUnsignedLong

func (w *Writer) WriteUnsignedLong(number uint64)

func (*Writer) WriteUnsignedShort

func (w *Writer) WriteUnsignedShort(number uint16)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL