From 020e17cc5311d091d713eb4fabae2a3d50944916 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期二, 27 八月 2019 13:13:33 +0800
Subject: [PATCH] add shm interface 2
---
shm.go | 18 ++++++++++++++++--
deliver.go | 3 +++
nng.go | 6 ++++++
3 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/deliver.go b/deliver.go
index c22dc79..465a6c1 100644
--- a/deliver.go
+++ b/deliver.go
@@ -11,6 +11,9 @@
// Recv recv data
Recv() ([]byte, error)
+ // Recv2 recv to param
+ Recv2([]byte) error
+
// Close close Deliver
Close()
}
diff --git a/nng.go b/nng.go
index 5122398..0e89b6f 100644
--- a/nng.go
+++ b/nng.go
@@ -79,6 +79,12 @@
}
+// Recv2 impl interface
+func (n *NNG) Recv2(data []byte) (err error) {
+ data, err = n.Recv()
+ return err
+}
+
// Close impl interface Deliver
func (n *NNG) Close() {
if n != nil && n.sock != nil {
diff --git a/shm.go b/shm.go
index 7997e7d..602bcfa 100644
--- a/shm.go
+++ b/shm.go
@@ -39,8 +39,7 @@
// data := make([]byte, maxRecvSize)
// n, err := s.rw.Read(data)
// if err == nil || err == io.EOF {
- // data := make([]byte, maxRecvSize)
- // copy(data, s.recvData)
+ // data := data[:n:n]
// return data, nil
// }
@@ -51,6 +50,21 @@
return nil, err
}
+// Recv2 impl interface
+func (s *SHM) Recv2(data []byte) error {
+ if s == nil || s.rw == nil {
+ return errors.New("please open shm consumer first")
+ }
+
+ n, err := s.rw.Read(data)
+ if err == nil || err == io.EOF {
+ data = data[:n:n]
+ return nil
+ }
+
+ return err
+}
+
// Close impl interface Deliver
func (s *SHM) Close() {
if s == nil {
--
Gitblit v1.8.0