zhangmeng
2019-05-17 9893edc6dda92601c81b249967384f6626abc272
add mangos bus interface to impl
1个文件已修改
23 ■■■■ 已修改文件
nng.go 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
nng.go
@@ -20,6 +20,15 @@
    "nanomsg.org/go-mangos/transport/all"
)
// type deliver
type td int
const (
    producer = td(iota)
    consumer
    star //mangos bus protocol
)
// NNG mangos wrap
type NNG struct {
    sock   mangos.Socket
@@ -34,7 +43,7 @@
func (n *NNG) Send(data []byte) error {
    var err error
    if n.sock == nil {
        n.sock, err = n.makeNNG(true)
        n.sock, err = n.makeNNG(producer)
        if err != nil {
            fmt.Println("create nng producer error")
            return err
@@ -56,7 +65,7 @@
    var err error
    if n.sock == nil {
        n.sock, err = n.makeNNG(false)
        n.sock, err = n.makeNNG(consumer)
        if err != nil {
            fmt.Println("create nng consumer error")
            return nil, err
@@ -102,18 +111,20 @@
}
func proto(producer bool, m Mode) protocol {
    if producer {
func proto(typ td, m Mode) protocol {
    if typ == producer {
        return protoProducer(m)
    } else if typ == consumer {
        return protoConsumer(m)
    }
    return protoConsumer(m)
}
func (n *NNG) makeNNG(producer bool) (mangos.Socket, error) {
func (n *NNG) makeNNG(typ td) (mangos.Socket, error) {
    var sock mangos.Socket
    var err error
    if sock, err = newSocket(proto(producer, n.mode)); err != nil {
    if sock, err = newSocket(proto(typ, n.mode)); err != nil {
        return nil, err
    }