Documentation
¶
Overview ¶
从fasthttp中变更过来的GoRoutine池 Autor: 不得闲 QQ:75492895
仿Delphi的通用类库 GStringList类似于TStringList Autor: 不得闲 QQ:75492895
Package DxCommonLib ¶
时间轮询调度池,只用一个定时器来实现After等超时设定,默认轮渡器设定为1个小时,精度为500毫秒 如果要使用更精确的定时器,请使用NewTimeWheelWorker自己指定定时器时间,目前在我的电脑上测试来看,最精确能到2毫秒 Author: 不得闲 QQ:75492895
公用包 Autor: 不得闲 QQ:75492895
Index ¶
- Constants
- Variables
- func After(d time.Duration) <-chan struct{}
- func AfterFunc(d time.Duration, aFunc GWorkerFunc)
- func Bin2Hex(bt []byte) string
- func Binary2Hex(bt []byte, dst []byte) []byte
- func Buffer2ByteSlice(Data uintptr, DataLen int) []byte
- func ByteSliceIsPrintString(Data []byte, scanStyle byte) bool
- func CanConvertStructField(field1, field2 *reflect.StructField) bool
- func CanKeyMatchStructField(key string, field *reflect.StructField) bool
- func CompareMem(a, b unsafe.Pointer, size int) bool
- func CopyMemory(to, from unsafe.Pointer, n uintptr)
- func DelphiStringLen(delphiString uintptr) (result int32)
- func EscapeJsonStr(str string, EscapeUnicode bool) string
- func EscapeJsonbyte(str string, EscapeUnicode bool, dst []byte) []byte
- func FastByte2String(bt []byte) string
- func FastBytes2Uint16s(bt []byte) []uint16
- func FastDelphiString2String(delphiString uintptr, unicodeDelphi bool) string
- func FastPByte2ByteSlice(pByte uintptr, byteLen int) []byte
- func FastPchar2String(pcharStr uintptr) string
- func FastString2Byte(str string) []byte
- func FastString2Utf16Byte(s string) ([]byte, error)
- func GBK2Utf8(gbk []byte) ([]byte, error)
- func GBKString(str string) ([]byte, error)
- func Hex2Binary(hexStr string) []byte
- func IsSimpleCopyKind(kind reflect.Kind) bool
- func ModePermStr2FileMode(permStr string) (result os.FileMode)
- func MustPostFunc(routineFunc GWorkerFunc, params ...interface{})
- func MustRunAsync(routineFunc GWorkerFunc, params ...interface{})
- func Ord(x bool) uint8
- func ParseFloat(s string) (float64, error)
- func ParseInt64(s string) (int64, error)
- func ParseStructTag(tag string) map[string]string
- func ParserEscapeStr(bvalue []byte, unEscapeUrl bool, buf []byte) string
- func ParserJsonTime(jsontime string) (time.Time, error)
- func ParserJsonTime2Go(jsontime string) time.Time
- func Pchar2String(pcharstr uintptr) string
- func PcharLen(dstr uintptr) int
- func PostFunc(routineFunc GWorkerFunc, params ...interface{}) bool
- func ReSetDefaultTimeWheel(Chkinterval time.Duration, slotBlockCount int32)
- func ReadAll(r io.Reader) ([]byte, error)
- func ResetDefaultWorker(maxGoroutinesAmount int, maxGoroutineIdleDuration time.Duration)
- func Sleep(d time.Duration)
- func StopWorkers()
- func StrToFloatDef(s string, defv float64) float64
- func StrToIntDef(vstr string, defv int64) int64
- func StrToUintDef(vstr string, defv uint64) uint64
- func String2Utf16Byte(s string) ([]byte, error)
- func StringData(str string) (uintptr, int)
- func StringFromUtf16Pointer(utf16Addr uintptr, maxlen int) string
- func TryPostAndRun(routineFunc GWorkerFunc, params ...interface{})
- func UTF16Byte2string(utf16bt []byte, isBigEnd bool) string
- func UTF16FromString(s string) ([]uint16, error)
- func UnEscapeStr(bvalue []byte, unEscapeUrl bool, buf []byte) []byte
- func Utf8String(utf8Data uintptr, utf8Len int) string
- func ZeroByteSlice(bt []byte)
- func ZeroMemory(ptr unsafe.Pointer, n uintptr)
- type DxBits
- func (bt *DxBits) AsInt32() int32
- func (bt *DxBits) AsInt64() int64
- func (bt *DxBits) AsUInt32() uint32
- func (bt *DxBits) AsUInt64() uint64
- func (bt *DxBits) Bits(index uint) bool
- func (bt *DxBits) CheckedCount() uint
- func (bt *DxBits) Clear()
- func (bt *DxBits) Count() uint
- func (bt *DxBits) NotBits(index int)
- func (bt *DxBits) ReSet(bsize uint)
- func (bt *DxBits) ReSetByInt32(v int32)
- func (bt *DxBits) ReSetByInt64(v int64)
- func (bt *DxBits) SetBits(index uint, v bool)
- type DxRingBuffer
- func (buffer *DxRingBuffer) Capacity() int
- func (buffer *DxRingBuffer) DataSize() int
- func (buffer *DxRingBuffer) FreeSize() int
- func (buffer *DxRingBuffer) IsEmpty() bool
- func (buffer *DxRingBuffer) IsFull() bool
- func (buffer *DxRingBuffer) MarkReadWrite()
- func (buffer *DxRingBuffer) Read(p []byte) (n int, err error)
- func (buffer *DxRingBuffer) ReadByte() (b byte, err error)
- func (buffer *DxRingBuffer) Reset()
- func (buffer *DxRingBuffer) RestoreMark()
- func (buffer *DxRingBuffer) Skip(n int)
- func (buffer *DxRingBuffer) Write(p []byte) (n int, err error)
- func (buffer *DxRingBuffer) WriteByte(b byte)
- type FileCodeMode
- type FileOpenMode
- type GDxBaseObject
- type GFileStream
- func (stream *GFileStream) Close()
- func (stream *GFileStream) FilePosition() int64
- func (stream *GFileStream) FlushBuffer() error
- func (stream *GFileStream) Position() int
- func (stream *GFileStream) Read(buffer []byte) (n int, err error)
- func (stream *GFileStream) ReadAt(p []byte, off int64) (n int, err error)
- func (stream *GFileStream) ReadByte() (byte, error)
- func (stream *GFileStream) ReadFrom(r io.Reader) (n int64, err error)
- func (stream *GFileStream) Seek(offset int64, whence int) (int64, error)
- func (stream *GFileStream) SetPosition(ps int) error
- func (stream *GFileStream) Size() int64
- func (stream *GFileStream) UnreadByte() error
- func (stream *GFileStream) Write(data []byte) (int, error)
- func (stream *GFileStream) WriteAt(p []byte, off int64) (n int, err error)
- func (stream *GFileStream) WriteByte(c byte) error
- func (stream *GFileStream) WriteTo(w io.Writer) (n int64, err error)
- type GStringList
- func (lst *GStringList) Add(str string)
- func (lst *GStringList) AddPair(Name, Value string)
- func (lst *GStringList) AddSlice(strs []string)
- func (lst *GStringList) AddStrings(strs IStrings)
- func (lst *GStringList) AsSlice() []string
- func (lst *GStringList) Clear()
- func (lst *GStringList) Count() int
- func (lst *GStringList) Delete(index int)
- func (lst *GStringList) IndexOf(str string) int
- func (lst *GStringList) IndexOfName(Name string) int
- func (lst *GStringList) Insert(Index int, str string)
- func (lst *GStringList) LineBreakStr() string
- func (lst *GStringList) LoadFromFile(fileName string)
- func (lst *GStringList) LoadFromReader(r io.Reader, filecodeType FileCodeMode)
- func (lst *GStringList) Names(Index int) string
- func (lst *GStringList) SaveToFile(fileName string)
- func (lst *GStringList) SetStrings(index int, str string)
- func (lst *GStringList) SetText(text string)
- func (lst *GStringList) Strings(index int) string
- func (lst *GStringList) Text() string
- func (lst *GStringList) ValueByName(Name string) string
- func (lst *GStringList) ValueFromIndex(index int) string
- type GWorkerFunc
- type GWorkers
- func (workers *GWorkers) MustPostFunc(routineFunc GWorkerFunc, params ...interface{})
- func (workers *GWorkers) MustRunAsync(routineFunc GWorkerFunc, params ...interface{})
- func (workers *GWorkers) PostFunc(routineFunc GWorkerFunc, params ...interface{}) bool
- func (workers *GWorkers) Start()
- func (workers *GWorkers) Stop()
- func (workers *GWorkers) TryPostAndRun(routineFunc GWorkerFunc, params ...interface{})
- type IDxInheritedObject
- type IStrings
- type LineBreakMode
- type TDateTime
- type TimeWheelWorker
Constants ¶
const ( MinsPerHour = 60 MinsPerDay = 24 * MinsPerHour SecsPerDay = MinsPerDay * 60 MSecsPerDay = SecsPerDay * 1000 )
Variables ¶
var ( IsAmd64 = runtime.GOARCH == "amd64" ErrInvalidJsonDateTime = errors.New("invalidate json dateTime format") )
var (
EINVAL = errors.New("invalid argument")
)
Functions ¶
func AfterFunc ¶
func AfterFunc(d time.Duration, aFunc GWorkerFunc)
func Buffer2ByteSlice ¶ added in v0.3.4
Buffer2ByteSlice 返回值不能修改
func ByteSliceIsPrintString ¶ added in v0.3.4
ByteSliceIsPrintString 判断二进制数组是否是可打印的字符串,如果打印字符的的百分比超过了指定的printPercent, 认为是可显示的Plaintext scanStyle 0 表示全扫描,1表示扫描头部10个rune,2表示扫描两头,3表示扫描前中尾
func CanConvertStructField ¶ added in v0.5.0
func CanConvertStructField(field1, field2 *reflect.StructField) bool
CanConvertStructField field1->是否能够 匹配field2字段
func CanKeyMatchStructField ¶ added in v0.5.0
func CanKeyMatchStructField(key string, field *reflect.StructField) bool
CanKeyMatchStructField key是否匹配field
func DelphiStringLen ¶ added in v0.5.2
DelphiStringLen 获取Delphi字符串的长度
func EscapeJsonStr ¶
EscapeJsonStr 将内容转义成Json字符串
func EscapeJsonbyte ¶ added in v0.1.8
func FastByte2String ¶
func FastBytes2Uint16s ¶
func FastDelphiString2String ¶ added in v0.5.2
FastDelphiString2String 将Delphi的字符串转为Go字符串 因为实际上Delphi的字符串,就是一个指针,这个指针的指向是数据位置,-4位置是长度,-8位置是引用计数,-10位置是每个字符占位个数,-12位置表示的是CodePage编码页 以上是对Unicode的Delphi的,如果是DXE之后的版本就只有到-8,有长度和引用计数,后面的都没有
func FastPByte2ByteSlice ¶ added in v0.3.2
func FastPchar2String ¶
func FastString2Byte ¶
FastString2Byte 本函数只作为强制转换使用,不可将返回的Slice再做修改处理
func FastString2Utf16Byte ¶ added in v0.2.5
func IsSimpleCopyKind ¶ added in v0.5.0
IsSimpleCopyKind 是否是简单的可copy的类型
func ModePermStr2FileMode ¶
ModePermStr2FileMode 将drwxrwx这些转化为 FileMode
func MustPostFunc ¶ added in v0.5.3
func MustPostFunc(routineFunc GWorkerFunc, params ...interface{})
func MustRunAsync ¶ added in v0.1.8
func MustRunAsync(routineFunc GWorkerFunc, params ...interface{})
MustRunAsync 必须异步执行到
func ParseFloat ¶ added in v0.2.5
func ParseInt64 ¶ added in v0.2.5
func ParseStructTag ¶ added in v0.5.0
ParseStructTag 后续可以缓存起来
func ParserEscapeStr ¶
ParserEscapeStr 解码转义字符,将"\u6821\u56ed\u7f51\t02%20得闲"这类字符串,解码成正常显示的字符串
func ParserJsonTime ¶
ParserJsonTime Date(1402384458000) Date(1224043200000+0800)
func ParserJsonTime2Go ¶ added in v0.1.8
ParserJsonTime2Go Date(1402384458000) Date(1224043200000+0800)
func PostFunc ¶
func PostFunc(routineFunc GWorkerFunc, params ...interface{}) bool
func ReSetDefaultTimeWheel ¶
func ResetDefaultWorker ¶ added in v0.1.8
func StopWorkers ¶
func StopWorkers()
func StrToFloatDef ¶ added in v0.1.8
StrToFloatDef github.com/valyala/fastjson/tree/master/fastfloat
func StrToIntDef ¶ added in v0.1.8
StrToIntDef From github.com/valyala/fastjson/tree/master/fastfloat
func StrToUintDef ¶ added in v0.1.8
StrToUintDef From github.com/valyala/fastjson/tree/master/fastfloat
func String2Utf16Byte ¶ added in v0.2.5
func StringData ¶ added in v0.3.4
func StringFromUtf16Pointer ¶ added in v0.1.4
func TryPostAndRun ¶ added in v0.1.8
func TryPostAndRun(routineFunc GWorkerFunc, params ...interface{})
func UTF16Byte2string ¶
func UTF16FromString ¶ added in v0.2.5
func UnEscapeStr ¶ added in v0.1.8
func Utf8String ¶ added in v0.3.4
Utf8String 此函数的返回值不能修改
func ZeroByteSlice ¶
func ZeroByteSlice(bt []byte)
Types ¶
type DxBits ¶
type DxBits struct {
// contains filtered or unexported fields
}
DxBits 用来存放位
func (*DxBits) ReSetByInt32 ¶
func (*DxBits) ReSetByInt64 ¶
type DxRingBuffer ¶ added in v0.1.6
type DxRingBuffer struct {
// contains filtered or unexported fields
}
func NewRingBuffer ¶ added in v0.1.6
func NewRingBuffer(size int) *DxRingBuffer
func (*DxRingBuffer) Capacity ¶ added in v0.1.6
func (buffer *DxRingBuffer) Capacity() int
func (*DxRingBuffer) DataSize ¶ added in v0.1.6
func (buffer *DxRingBuffer) DataSize() int
DataSize 数据长度
func (*DxRingBuffer) FreeSize ¶ added in v0.1.6
func (buffer *DxRingBuffer) FreeSize() int
FreeSize 剩下的空余大小
func (*DxRingBuffer) IsEmpty ¶ added in v0.1.6
func (buffer *DxRingBuffer) IsEmpty() bool
func (*DxRingBuffer) IsFull ¶ added in v0.1.6
func (buffer *DxRingBuffer) IsFull() bool
func (*DxRingBuffer) MarkReadWrite ¶ added in v0.1.6
func (buffer *DxRingBuffer) MarkReadWrite()
func (*DxRingBuffer) Read ¶ added in v0.1.6
func (buffer *DxRingBuffer) Read(p []byte) (n int, err error)
func (*DxRingBuffer) ReadByte ¶ added in v0.1.6
func (buffer *DxRingBuffer) ReadByte() (b byte, err error)
func (*DxRingBuffer) Reset ¶ added in v0.1.6
func (buffer *DxRingBuffer) Reset()
func (*DxRingBuffer) RestoreMark ¶ added in v0.1.6
func (buffer *DxRingBuffer) RestoreMark()
func (*DxRingBuffer) Skip ¶ added in v0.1.6
func (buffer *DxRingBuffer) Skip(n int)
func (*DxRingBuffer) Write ¶ added in v0.1.6
func (buffer *DxRingBuffer) Write(p []byte) (n int, err error)
func (*DxRingBuffer) WriteByte ¶ added in v0.1.6
func (buffer *DxRingBuffer) WriteByte(b byte)
type FileCodeMode ¶
type FileCodeMode uint8 //文件格式
const ( File_Code_Unknown FileCodeMode = iota File_Code_Utf8 File_Code_Utf16BE File_Code_Utf16LE File_Code_GBK )
type FileOpenMode ¶
type FileOpenMode int //文件打开方式
const ( FMCreate FileOpenMode = FileOpenMode(os.O_CREATE | os.O_WRONLY | os.O_TRUNC) FMOpenRead FileOpenMode = FileOpenMode(os.O_RDONLY) FMOpenWrite FileOpenMode = FileOpenMode(os.O_WRONLY) // | os.O_APPEND) FMOpenReadWrite FileOpenMode = FileOpenMode(os.O_RDWR) // | os.O_APPEND) )
type GDxBaseObject ¶
type GDxBaseObject struct { UseData interface{} //用户数据 // contains filtered or unexported fields }
func (*GDxBaseObject) Destroy ¶
func (obj *GDxBaseObject) Destroy()
func (*GDxBaseObject) Free ¶
func (obj *GDxBaseObject) Free()
func (*GDxBaseObject) LastedSubChild ¶
func (obj *GDxBaseObject) LastedSubChild() interface{}
func (*GDxBaseObject) SubChild ¶
func (obj *GDxBaseObject) SubChild(idx int) interface{}
func (*GDxBaseObject) SubChildCount ¶
func (obj *GDxBaseObject) SubChildCount() int
func (*GDxBaseObject) SubInit ¶
func (obj *GDxBaseObject) SubInit(subObj interface{})
type GFileStream ¶
type GFileStream struct {
// contains filtered or unexported fields
}
func NewFileStream ¶
func NewFileStream(fileName string, openMode FileOpenMode, bufferSize int) (*GFileStream, error)
func (*GFileStream) Close ¶
func (stream *GFileStream) Close()
func (*GFileStream) FilePosition ¶
func (stream *GFileStream) FilePosition() int64
func (*GFileStream) FlushBuffer ¶
func (stream *GFileStream) FlushBuffer() error
func (*GFileStream) Position ¶
func (stream *GFileStream) Position() int
func (*GFileStream) ReadAt ¶
func (stream *GFileStream) ReadAt(p []byte, off int64) (n int, err error)
ReadAt ReaderAt interface
func (*GFileStream) ReadByte ¶
func (stream *GFileStream) ReadByte() (byte, error)
ReadByte ByteReader
func (*GFileStream) ReadFrom ¶
func (stream *GFileStream) ReadFrom(r io.Reader) (n int64, err error)
ReadFrom interface
func (*GFileStream) SetPosition ¶
func (stream *GFileStream) SetPosition(ps int) error
func (*GFileStream) Size ¶
func (stream *GFileStream) Size() int64
func (*GFileStream) UnreadByte ¶
func (stream *GFileStream) UnreadByte() error
func (*GFileStream) WriteAt ¶
func (stream *GFileStream) WriteAt(p []byte, off int64) (n int, err error)
WriteAt WriterAt interface
func (*GFileStream) WriteByte ¶
func (stream *GFileStream) WriteByte(c byte) error
type GStringList ¶
type GStringList struct { LineBreak LineBreakMode UnknownCodeUseGbk bool //未知编码的时候采用GBK编码打开 // contains filtered or unexported fields }
func (*GStringList) Add ¶
func (lst *GStringList) Add(str string)
func (*GStringList) AddPair ¶
func (lst *GStringList) AddPair(Name, Value string)
func (*GStringList) AddSlice ¶
func (lst *GStringList) AddSlice(strs []string)
func (*GStringList) AddStrings ¶
func (lst *GStringList) AddStrings(strs IStrings)
func (*GStringList) AsSlice ¶
func (lst *GStringList) AsSlice() []string
func (*GStringList) Clear ¶
func (lst *GStringList) Clear()
func (*GStringList) Count ¶
func (lst *GStringList) Count() int
func (*GStringList) Delete ¶
func (lst *GStringList) Delete(index int)
func (*GStringList) IndexOf ¶
func (lst *GStringList) IndexOf(str string) int
func (*GStringList) IndexOfName ¶
func (lst *GStringList) IndexOfName(Name string) int
func (*GStringList) Insert ¶
func (lst *GStringList) Insert(Index int, str string)
func (*GStringList) LineBreakStr ¶
func (lst *GStringList) LineBreakStr() string
func (*GStringList) LoadFromFile ¶
func (lst *GStringList) LoadFromFile(fileName string)
func (*GStringList) LoadFromReader ¶ added in v0.1.5
func (lst *GStringList) LoadFromReader(r io.Reader, filecodeType FileCodeMode)
func (*GStringList) Names ¶
func (lst *GStringList) Names(Index int) string
func (*GStringList) SaveToFile ¶
func (lst *GStringList) SaveToFile(fileName string)
func (*GStringList) SetStrings ¶
func (lst *GStringList) SetStrings(index int, str string)
func (*GStringList) SetText ¶
func (lst *GStringList) SetText(text string)
func (*GStringList) Strings ¶
func (lst *GStringList) Strings(index int) string
func (*GStringList) Text ¶
func (lst *GStringList) Text() string
func (*GStringList) ValueByName ¶
func (lst *GStringList) ValueByName(Name string) string
func (*GStringList) ValueFromIndex ¶
func (lst *GStringList) ValueFromIndex(index int) string
type GWorkerFunc ¶
type GWorkerFunc func(data ...interface{})
type GWorkers ¶
type GWorkers struct {
// contains filtered or unexported fields
}
func NewWorkers ¶
func (*GWorkers) MustPostFunc ¶ added in v0.5.3
func (workers *GWorkers) MustPostFunc(routineFunc GWorkerFunc, params ...interface{})
MustPostFunc 必然投递
func (*GWorkers) MustRunAsync ¶ added in v0.1.8
func (workers *GWorkers) MustRunAsync(routineFunc GWorkerFunc, params ...interface{})
MustRunAsync 必须异步执行到
func (*GWorkers) PostFunc ¶
func (workers *GWorkers) PostFunc(routineFunc GWorkerFunc, params ...interface{}) bool
func (*GWorkers) TryPostAndRun ¶ added in v0.1.8
func (workers *GWorkers) TryPostAndRun(routineFunc GWorkerFunc, params ...interface{})
type IDxInheritedObject ¶
type IStrings ¶
type IStrings interface { Count() int Strings(index int) string SetStrings(index int, str string) Text() string SetText(text string) LoadFromFile(fileName string) SaveToFile(fileName string) Add(str string) Insert(Index int, str string) Delete(index int) AddStrings(strs IStrings) AddSlice(strs []string) Clear() IndexOf(str string) int AddPair(Name, Value string) IndexOfName(Name string) int ValueFromIndex(index int) string ValueByName(Name string) string Names(Index int) string AsSlice() []string }
type TDateTime ¶
type TDateTime float64
func Time2DelphiTime ¶
func (*TDateTime) WrapTime2Self ¶
type TimeWheelWorker ¶
func NewTimeWheelWorker ¶
func NewTimeWheelWorker(interval time.Duration, slotBlockCount int32) *TimeWheelWorker
NewTimeWheelWorker interval指定调度的时间间隔 slotBlockCount指定时间轮的块长度
func (*TimeWheelWorker) After ¶
func (worker *TimeWheelWorker) After(d time.Duration) <-chan struct{}
func (*TimeWheelWorker) AfterFunc ¶
func (worker *TimeWheelWorker) AfterFunc(d time.Duration, afterFunc GWorkerFunc, data ...interface{})
func (*TimeWheelWorker) Sleep ¶
func (worker *TimeWheelWorker) Sleep(d time.Duration)
func (*TimeWheelWorker) Stop ¶
func (worker *TimeWheelWorker) Stop()