Files
jx-callback/business/jxstore/event/event_print.go
邹宗楠 d339ebb47b 1
2026-05-09 16:02:04 +08:00

196 lines
4.9 KiB
Go

package event
import (
"fmt"
"sync"
)
var (
PrintObject *PrintObjectStruct // 缓存的打印机对象
PrintAddrAndIp *PrintAddrAndIpStruct // 缓存打印机地址:[ip:printNo] event 文件包,connect只能获取到addr
PrintIpAndAddr *PrintIpAndAddrStruct // 缓存打印机地址:[printNo:ip] api_controller 只能获取到printNo
)
func init() {
fmt.Println("初始化打印机对象")
PrintObject = &PrintObjectStruct{
PrintObject: make(map[string]*TcpClient),
RWMutex: new(sync.RWMutex),
}
PrintAddrAndIp = &PrintAddrAndIpStruct{
PrintObject: make(map[string]string),
RWMutex: new(sync.RWMutex),
}
PrintIpAndAddr = &PrintIpAndAddrStruct{
PrintObject: make(map[string]string),
RWMutex: new(sync.RWMutex),
}
}
type PrintObjectStruct struct {
PrintObject map[string]*TcpClient
*sync.RWMutex
}
func (p *PrintObjectStruct) GetPrintObj(printNo string) (*TcpClient, bool) {
p.RLock()
defer p.RUnlock()
tcpObj, ok := PrintObject.PrintObject[printNo]
return tcpObj, ok
}
func (p *PrintObjectStruct) SetPrintObj(printNo string, tcpObj *TcpClient) {
p.RLock()
defer p.RUnlock()
PrintObject.PrintObject[printNo] = tcpObj
}
func (p *PrintObjectStruct) DelPrintObj(printNo string) {
p.RLock()
defer p.RUnlock()
delete(PrintObject.PrintObject, printNo)
}
type PrintAddrAndIpStruct struct {
PrintObject map[string]string
*sync.RWMutex
}
func (p *PrintAddrAndIpStruct) GetPrintAddrAndIp(ip string) (string, bool) {
p.RLock()
defer p.RUnlock()
printNo, ok := PrintAddrAndIp.PrintObject[ip]
return printNo, ok
}
func (p *PrintAddrAndIpStruct) SetPrintAddrAndIp(ip string, printNo string) {
p.RLock()
defer p.RUnlock()
PrintAddrAndIp.PrintObject[ip] = printNo
}
func (p *PrintAddrAndIpStruct) DelPrintAddrAndIp(ip string) {
p.RLock()
defer p.RUnlock()
delete(PrintAddrAndIp.PrintObject, ip)
}
type PrintIpAndAddrStruct struct {
PrintObject map[string]string
*sync.RWMutex
}
func (p *PrintIpAndAddrStruct) GetPrintIpAndAddr(printNo string) (string, bool) {
p.RLock()
defer p.RUnlock()
tcpObj, ok := PrintIpAndAddr.PrintObject[printNo]
return tcpObj, ok
}
func (p *PrintIpAndAddrStruct) SetPrintIpAndAddr(printNo string, ip string) {
p.RLock()
defer p.RUnlock()
PrintIpAndAddr.PrintObject[printNo] = ip
}
func (p *PrintIpAndAddrStruct) DelPrintIpAndAddr(printNo string) {
p.RLock()
defer p.RUnlock()
delete(PrintIpAndAddr.PrintObject, printNo)
}
//package event
//
//import (
// "fmt"
// "sync"
//)
//
//var (
// PrintObject *PrintObjectStruct // 缓存的打印机对象
// PrintAddrAndIp *PrintAddrAndIpStruct // 缓存打印机地址:[ip:printNo] event 文件包,connect只能获取到addr
// PrintIpAndAddr *PrintIpAndAddrStruct // 缓存打印机地址:[printNo:ip] api_controller 只能获取到printNo
//)
//
//func init() {
// fmt.Println("初始化打印机对象")
// PrintObject = &PrintObjectStruct{
// PrintObject: make(map[string]*TcpClient),
// RWMutex: new(sync.RWMutex),
// }
// PrintAddrAndIp = &PrintAddrAndIpStruct{
// PrintObject: make(map[string]string),
// RWMutex: new(sync.RWMutex),
// }
// PrintIpAndAddr = &PrintIpAndAddrStruct{
// PrintObject: make(map[string]string),
// RWMutex: new(sync.RWMutex),
// }
//}
//
//type PrintObjectStruct struct {
// PrintObject map[string]*TcpClient
// *sync.RWMutex
//}
//
//func (p *PrintObjectStruct) GetPrintObj(printNo string) (*TcpClient, bool) {
// p.RLock()
// defer p.RUnlock()
// tcpObj, ok := PrintObject.PrintObject[printNo]
// return tcpObj, ok
//}
//func (p *PrintObjectStruct) SetPrintObj(printNo string, tcpObj *TcpClient) {
// p.RLock()
// defer p.RUnlock()
// PrintObject.PrintObject[printNo] = tcpObj
//}
//
//func (p *PrintObjectStruct) DelPrintObj(printNo string) {
// p.RLock()
// defer p.RUnlock()
// delete(PrintObject.PrintObject, printNo)
//}
//
//type PrintAddrAndIpStruct struct {
// PrintObject map[string]string
// *sync.RWMutex
//}
//
//func (p *PrintAddrAndIpStruct) GetPrintAddrAndIp(ip string) (string, bool) {
// p.RLock()
// defer p.RUnlock()
// printNo, ok := PrintAddrAndIp.PrintObject[ip]
// return printNo, ok
//}
//func (p *PrintAddrAndIpStruct) SetPrintAddrAndIp(ip string, printNo string) {
// p.RLock()
// defer p.RUnlock()
// PrintAddrAndIp.PrintObject[ip] = printNo
//}
//
//func (p *PrintAddrAndIpStruct) DelPrintAddrAndIp(ip string) {
// p.RLock()
// defer p.RUnlock()
// delete(PrintAddrAndIp.PrintObject, ip)
//}
//
//type PrintIpAndAddrStruct struct {
// PrintObject map[string]string
// *sync.RWMutex
//}
//
//func (p *PrintIpAndAddrStruct) GetPrintIpAndAddr(printNo string) (string, bool) {
// p.RLock()
// defer p.RUnlock()
// tcpObj, ok := PrintIpAndAddr.PrintObject[printNo]
// return tcpObj, ok
//}
//func (p *PrintIpAndAddrStruct) SetPrintIpAndAddr(printNo string, ip string) {
// p.RLock()
// defer p.RUnlock()
// PrintIpAndAddr.PrintObject[printNo] = ip
//}
//
//func (p *PrintIpAndAddrStruct) DelPrintIpAndAddr(printNo string) {
// p.RLock()
// defer p.RUnlock()
// delete(PrintIpAndAddr.PrintObject, printNo)
//}