zhangmeng
2019-05-22 c2bbe31e7c6c9f83f7bcce26dea98bc18ed8f39c
deliver.go
@@ -1,5 +1,7 @@
package deliver
import "errors"
// Deliver define a interface how to use mangos
type Deliver interface {
@@ -13,21 +15,50 @@
   Close()
}
// NewProducer create producer args presentive for parameter with protocal, e.g. sub topic
func NewProducer(m Mode, url string, args ...interface{}) Deliver {
// NewServer create listener args presentive for parameter with protocal, e.g. sub topic
func NewServer(m Mode, url string, args ...interface{}) Deliver {
   if m > ModeStart && m < ModeNNG {
      return nngProducer(m, url, args...)
      return nngServer(m, url, args...)
   } else if m == Shm {
      s, _ := shmServer(m, url, args...)
      return s
   }
   return nil
}
// NewConsumer create consumer args presentive for parameter with protocal, e.g. sub topic
func NewConsumer(m Mode, url string, args ...interface{}) Deliver {
// NewClient create dialer args presentive for parameter with protocal, e.g. sub topic
func NewClient(m Mode, url string, args ...interface{}) Deliver {
   if m > ModeStart && m < ModeNNG {
      return nngConsumer(m, url, args...)
      return nngClient(m, url, args...)
   } else if m == Shm {
      s, _ := shmClient(m, url, args...)
      return s
   }
   return nil
}
// NewServerWithError create listener args presentive for parameter with protocal, e.g. sub topic
func NewServerWithError(m Mode, url string, args ...interface{}) (Deliver, error) {
   if m > ModeStart && m < ModeNNG {
      return nngServer(m, url, args...), nil
   } else if m == Shm {
      return shmServer(m, url, args...)
   }
   return nil, errors.New("please choose a suitable deliver.mode")
}
// NewClientWithError create dialer args presentive for parameter with protocal, e.g. sub topic
func NewClientWithError(m Mode, url string, args ...interface{}) (Deliver, error) {
   if m > ModeStart && m < ModeNNG {
      return nngClient(m, url, args...), nil
   } else if m == Shm {
      return shmClient(m, url, args...)
   }
   return nil, errors.New("please choose a suitable deliver.mode")
}