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