From b5560d3cae1164f016ca9339592eda6b9008fb9f Mon Sep 17 00:00:00 2001
From: chenshijun <csj_sky@126.com>
Date: 星期六, 27 七月 2019 12:31:29 +0800
Subject: [PATCH] 重构代码
---
util/util.go | 89 ++++++++++++++++++++++++++++++++------------
1 files changed, 64 insertions(+), 25 deletions(-)
diff --git a/util/util.go b/util/util.go
index 96b3edc..e19a6a3 100644
--- a/util/util.go
+++ b/util/util.go
@@ -1,11 +1,18 @@
package util
-import(
- "github.com/pierrec/lz4"
- "taskpubsub/logger"
- )
+import (
+ "basic.com/valib/deliver.git"
+ "context"
+ "errors"
+ "github.com/pierrec/lz4"
+ "taskpubsub/logger"
+)
-
+type SocketContext struct {
+ Sock deliver.Deliver
+ Context context.Context
+ Cancel context.CancelFunc
+}
// 1. oldstring element is not in new : abandon(delete)
// 2. new element is not in oldstring : add(add)
@@ -41,28 +48,60 @@
// UnCompress uncompress
func UnCompress(in []byte) ([]byte, error) {
- out := make([]byte, 10*len(in))
- n, err := lz4.UncompressBlock(in, out)
- if err != nil {
- logger.Error("uncompress error: ", err)
- return nil, err
- }
- out = out[:n] // uncompressed data
- return out, nil
+ out := make([]byte, 10*len(in))
+ n, err := lz4.UncompressBlock(in, out)
+ if err != nil {
+ logger.Error("uncompress error: ", err)
+ return nil, err
+ }
+ out = out[:n] // uncompressed data
+ return out, nil
}
// Compress compress
func Compress(in []byte) ([]byte, error) {
- out := make([]byte, len(in))
- ht := make([]int, 64<<10) // buffer for the compression table
- n, err := lz4.CompressBlock(in, out, ht)
- if err != nil {
- logger.Error("compress: ", err)
- return nil, err
- }
- if n >= len(in) {
- logger.Error("image is not compressible")
- }
- out = out[:n] // compressed data
- return out, nil
+ out := make([]byte, len(in))
+ ht := make([]int, 64<<10) // buffer for the compression table
+ n, err := lz4.CompressBlock(in, out, ht)
+ if err != nil {
+ logger.Error("compress: ", err)
+ return nil, err
+ }
+ if n >= len(in) {
+ logger.Error("image is not compressible")
+ }
+ out = out[:n] // compressed data
+ return out, nil
+}
+
+// create server
+func NewSocketListen(mode int, url string) (socket SocketContext, err error) {
+ logger.Info("url is: ", url)
+ ctx, cancel := context.WithCancel(context.Background())
+
+ socket.Context = ctx
+ socket.Cancel = cancel
+ socket.Sock = deliver.NewServer(deliver.Mode(mode), url)
+
+ if socket.Sock == nil {
+ return socket, errors.New("create listen error")
+ }
+
+ return socket, nil
+}
+
+func NewSocketDial(mode int, url string) (socket SocketContext, err error) {
+ logger.Info("url is: ", url)
+ ctx, cancel := context.WithCancel(context.Background())
+
+ socket.Context = ctx
+ socket.Cancel = cancel
+
+ socket.Sock = deliver.NewClient(deliver.Mode(mode), url)
+
+ if socket.Sock == nil {
+ return socket, errors.New("create listen error")
+ }
+
+ return socket, nil
}
--
Gitblit v1.8.0