| | |
| | | package deliver |
| | | |
| | | import "errors" |
| | | |
| | | // Deliver define a interface how to use mangos |
| | | type Deliver interface { |
| | | |
| | |
| | | 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, err := shmServer(m, url, args...) |
| | | if err != nil { |
| | | s = nil |
| | | } |
| | | 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, err := shmClient(m, url, args...) |
| | | if err != nil { |
| | | s = nil |
| | | } |
| | | 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") |
| | | } |