1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package pomeloMessage
- import (
- "strings"
- clog "github.com/mhaya/logger"
- )
- var (
- routes = make(map[string]uint16) // 路由信息映射为uint16
- codes = make(map[uint16]string) // uint16映射为路由信息
- )
- // SetDictionary set routes map which be used to compress route.
- func SetDictionary(dict map[string]uint16) {
- if dict == nil {
- return
- }
- for route, code := range dict {
- r := strings.TrimSpace(route) //去掉开头结尾的空格
- // duplication check
- if _, ok := routes[r]; ok {
- clog.Errorf("duplicated route(route: %s, code: %d)", r, code)
- return
- }
- if _, ok := codes[code]; ok {
- clog.Errorf("duplicated route(route: %s, code: %d)", r, code)
- return
- }
- // update map, using last value when key duplicated
- routes[r] = code
- codes[code] = r
- }
- }
- // GetDictionary gets the routes map which is used to compress route.
- func GetDictionary() map[string]uint16 {
- return routes
- }
- func GetRoute(code uint16) (route string, found bool) {
- route, found = codes[code]
- return route, found
- }
- func GetCode(route string) (uint16, bool) {
- code, found := routes[route]
- return code, found
- }
|