api.go 617 B

1234567891011121314151617181920212223242526272829
  1. package protocol
  2. type IProtocol interface {
  3. Init(name string) error
  4. Uninit()
  5. ChannelDispatch(rxb []byte) int
  6. ParsePacket(buff []byte, param ...interface{}) interface{}
  7. PackageCmd(cmd string, param ...interface{}) interface{}
  8. }
  9. type funcRegProt func() IProtocol
  10. var ProtList map[string]IProtocol
  11. var ProtReg map[string]funcRegProt
  12. func LoadProtocol(name string) IProtocol {
  13. if p, has := ProtList[name]; has && p != nil {
  14. return p
  15. }
  16. if f, has := ProtReg[name]; has && f != nil {
  17. return f()
  18. }
  19. return nil
  20. }
  21. func init() {
  22. ProtList = make(map[string]IProtocol)
  23. ProtReg = make(map[string]funcRegProt)
  24. }