From a735e666cff14e4e485110d2a59d401b4be61b9b Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期四, 29 八月 2019 17:50:09 +0800
Subject: [PATCH] add recover

---
 util/util.go |   74 +++++++++++++++++++++++++------------
 1 files changed, 50 insertions(+), 24 deletions(-)

diff --git a/util/util.go b/util/util.go
index e19a6a3..875e0f7 100644
--- a/util/util.go
+++ b/util/util.go
@@ -1,17 +1,26 @@
 package util
 
 import (
-	"basic.com/valib/deliver.git"
 	"context"
 	"errors"
-	"github.com/pierrec/lz4"
+	"fmt"
+
+	"basic.com/valib/deliver.git"
+
+	// "github.com/pierrec/lz4"
 	"taskpubsub/logger"
 )
+
+const SHMMaxTryCount = 3
 
 type SocketContext struct {
 	Sock    deliver.Deliver
 	Context context.Context
 	Cancel  context.CancelFunc
+
+	Mode   int
+	URL    string
+	UseSHM bool
 }
 
 //  1. oldstring element is not in new  : abandon(delete)
@@ -48,40 +57,57 @@
 
 // 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
+	return in, nil
+
+	// out := make([]byte, 3*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
+	return in, 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) {
+func NewSocketListen(mode int, url string, shm bool) (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)
+
+	socket.Mode = mode
+	socket.URL = url
+	socket.UseSHM = shm
+
+	if shm {
+		var err error
+		socket.Sock, err = deliver.NewServerWithError(deliver.Mode(mode), url)
+		if err != nil {
+			fmt.Println("TASK CREATE SERVER SHM ERROR: ", err)
+		}
+	} else {
+		socket.Sock = deliver.NewServer(deliver.Mode(mode), url)
+	}
 
 	if socket.Sock == nil {
 		return socket, errors.New("create listen error")

--
Gitblit v1.8.0