Documentation ¶
Overview ¶
serialize
Index ¶
- func CopyMemory(src, dst []byte) int
- func GetLengthDataLen(avLen uint32) uint32
- func GetValueDataPtr(v *reflect.Value) uintptr
- func Move(src, dst uintptr, size uint32)
- func ReadLength(bits []byte) (lengthValue uint32, readLen uint32)
- func ReadString(bits []byte) (str string, readLen uint32)
- func WiriteLength(bits []byte, aLength uint32) (wirteLen uint32)
- func WriteString(bits []byte, str string) (writeLen uint32)
- type BufferUtils
- func (bw *BufferUtils) GetDataLen() int
- func (bw *BufferUtils) GetPos() int
- func (bw *BufferUtils) GetRemainBuff() []byte
- func (bw *BufferUtils) GetRemainLen() int
- func (bw *BufferUtils) Read(buff []byte) (v int, err error)
- func (bw *BufferUtils) ReadUint16() (v uint16)
- func (bw *BufferUtils) ReadUint32() (v uint32)
- func (bw *BufferUtils) ReadUint64() (v uint64)
- func (bw *BufferUtils) ReadUint8() (v uint8)
- func (bw *BufferUtils) Reset(buff []byte)
- func (bw *BufferUtils) ResetBuffSize(size int)
- func (bw *BufferUtils) ResetPos(newPos int) (r bool)
- func (bw *BufferUtils) Seek(offset int) bool
- func (bw *BufferUtils) Write(a any) bool
- type DefaultHeadHandler
- type DefaultMsgHead
- type FastLocker
- type HashIdType
- type IHeaderCreator
- type IMsgHandler
- type IMsgHeader
- type IPackHeader
- type MsgBody
- type PByteArray
- type PStrArray
- type PackData
- type Serializer
- func (s *Serializer) Decode(bits []byte, ptr interface{}) bool
- func (s *Serializer) DecodeStruct(id HashIdType, bits []byte) (obj interface{}, isOk bool)
- func (s *Serializer) Encode(ptr interface{}) (result []byte, ok bool)
- func (s *Serializer) NewStruct(id HashIdType) interface{}
- func (s *Serializer) RegisterType(id HashIdType, obj interface{}) bool
- type SockOptions
- type SocketClient
- type SocketConnection
- type SocketServer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CopyMemory ¶
func GetLengthDataLen ¶
func GetValueDataPtr ¶
func ReadLength ¶
func ReadString ¶
func WiriteLength ¶
func WriteString ¶
Types ¶
type BufferUtils ¶
type BufferUtils struct {
// contains filtered or unexported fields
}
func NewBufferUtils ¶
func NewBufferUtils(buff []byte) *BufferUtils
func (*BufferUtils) GetDataLen ¶
func (bw *BufferUtils) GetDataLen() int
func (*BufferUtils) GetPos ¶
func (bw *BufferUtils) GetPos() int
func (*BufferUtils) Read ¶ added in v1.0.6
func (bw *BufferUtils) Read(buff []byte) (v int, err error)
支持 Io.reader 接口
func (*BufferUtils) ReadUint16 ¶
func (bw *BufferUtils) ReadUint16() (v uint16)
func (*BufferUtils) ReadUint32 ¶
func (bw *BufferUtils) ReadUint32() (v uint32)
func (*BufferUtils) ReadUint64 ¶
func (bw *BufferUtils) ReadUint64() (v uint64)
func (*BufferUtils) ReadUint8 ¶
func (bw *BufferUtils) ReadUint8() (v uint8)
func (*BufferUtils) Reset ¶
func (bw *BufferUtils) Reset(buff []byte)
func (*BufferUtils) Write ¶
func (bw *BufferUtils) Write(a any) bool
type DefaultHeadHandler ¶
type DefaultHeadHandler struct {
// contains filtered or unexported fields
}
func NewDefaultHeadHandler ¶
func NewDefaultHeadHandler(creater IHeaderCreator) *DefaultHeadHandler
func (*DefaultHeadHandler) ReadPack ¶
func (d *DefaultHeadHandler) ReadPack(reader io.Reader, conn SocketConnection) (pack *PackData)
type DefaultMsgHead ¶
type DefaultMsgHead struct { Cmd uint32 // contains filtered or unexported fields }
func (*DefaultMsgHead) CreateMsgHeader ¶
func (d *DefaultMsgHead) CreateMsgHeader() IMsgHeader
func (*DefaultMsgHead) GetHeaderSize ¶
func (d *DefaultMsgHead) GetHeaderSize() int
func (*DefaultMsgHead) ReadHeader ¶
func (d *DefaultMsgHead) ReadHeader(br *BufferUtils) (isOk bool, bodyLen int)
func (*DefaultMsgHead) WriteHeader ¶
func (d *DefaultMsgHead) WriteHeader(bw *BufferUtils, bodyLen int) bool
type FastLocker ¶
type FastLocker struct {
// contains filtered or unexported fields
}
func (*FastLocker) Lock ¶
func (l *FastLocker) Lock()
func (*FastLocker) Unlock ¶
func (l *FastLocker) Unlock()
type HashIdType ¶
type HashIdType = int32 // =, 用别名,方便兼容
type IHeaderCreator ¶
type IHeaderCreator interface {
CreateMsgHeader() IMsgHeader
}
type IMsgHandler ¶
type IMsgHandler interface { OnConnect(sock SocketConnection) OnDisconnect(sock SocketConnection) OnMessage(sock SocketConnection, msg *PackData) }
type IMsgHeader ¶
type IMsgHeader interface { GetHeaderSize() int ReadHeader(br *BufferUtils) (isOk bool, bodyLen int) WriteHeader(bw *BufferUtils, bodyLen int) bool }
type IPackHeader ¶
type PByteArray ¶
type PByteArray (*[cMaxArrSize]byte)
type Serializer ¶
type Serializer struct {
// contains filtered or unexported fields
}
func New ¶
func New(isLikeCStruct bool, hashTblSize int) *Serializer
方便线程和不同的模式使用 isLikeCStruct 主要是跟 c++、Delphi 类通讯
func (*Serializer) Decode ¶
func (s *Serializer) Decode(bits []byte, ptr interface{}) bool
func (*Serializer) DecodeStruct ¶
func (s *Serializer) DecodeStruct(id HashIdType, bits []byte) (obj interface{}, isOk bool)
func (*Serializer) Encode ¶
func (s *Serializer) Encode(ptr interface{}) (result []byte, ok bool)
这里传指针,加快访问速度
func (*Serializer) NewStruct ¶
func (s *Serializer) NewStruct(id HashIdType) interface{}
根据注册ID新建结构,方便外面使用
func (*Serializer) RegisterType ¶
func (s *Serializer) RegisterType(id HashIdType, obj interface{}) bool
type SockOptions ¶
type SockOptions struct { HeadHandler IPackHeader MsgHandler IMsgHandler }
type SocketClient ¶
type SocketClient interface { Open() // 开始连接,打开会会自动连接 Close() // 关闭连接 GetConnection() SocketConnection Connected() bool // 判断是否连接 }
func NewSocketClient ¶
func NewSocketClient(addr string, avOpts SockOptions) SocketClient
type SocketConnection ¶
type SocketServer ¶
type SocketServer interface { Open(avPort uint16) bool // 开启服务 Close() // 关闭 Foreach(f enum_callback) // 遍历连接 SendRawData(SockId int32, avBytes []byte) bool // 根据id 发送消息 SendData(SockId int32, Data []byte) bool // 直接发送数据 GetConnectCount() int32 // 获取连接总数 }
func NewSocketServer ¶
func NewSocketServer(avOpts SockOptions) SocketServer
Click to show internal directories.
Click to hide internal directories.