提交 | 用户 | age
|
9d4b12
|
1 |
package deliver |
Z |
2 |
|
c2bbe3
|
3 |
import "errors" |
Z |
4 |
|
9d4b12
|
5 |
// Deliver define a interface how to use mangos |
Z |
6 |
type Deliver interface { |
|
7 |
|
|
8 |
// Send send data |
|
9 |
Send([]byte) error |
|
10 |
|
|
11 |
// Recv recv data |
|
12 |
Recv() ([]byte, error) |
aaae99
|
13 |
|
020e17
|
14 |
// Recv2 recv to param |
058b21
|
15 |
Recv2([]byte) (int, error) |
020e17
|
16 |
|
aaae99
|
17 |
// Close close Deliver |
Z |
18 |
Close() |
9d4b12
|
19 |
} |
Z |
20 |
|
6887a3
|
21 |
// NewServer create listener args presentive for parameter with protocal, e.g. sub topic |
Z |
22 |
func NewServer(m Mode, url string, args ...interface{}) Deliver { |
9d4b12
|
23 |
|
Z |
24 |
if m > ModeStart && m < ModeNNG { |
6887a3
|
25 |
return nngServer(m, url, args...) |
9a89af
|
26 |
} else if m == Shm { |
50e51f
|
27 |
s, err := shmServer(m, url, args...) |
Z |
28 |
if err != nil { |
|
29 |
s = nil |
|
30 |
} |
c2bbe3
|
31 |
return s |
9d4b12
|
32 |
} |
Z |
33 |
return nil |
|
34 |
} |
|
35 |
|
6887a3
|
36 |
// NewClient create dialer args presentive for parameter with protocal, e.g. sub topic |
Z |
37 |
func NewClient(m Mode, url string, args ...interface{}) Deliver { |
9d4b12
|
38 |
|
Z |
39 |
if m > ModeStart && m < ModeNNG { |
6887a3
|
40 |
return nngClient(m, url, args...) |
9a89af
|
41 |
} else if m == Shm { |
50e51f
|
42 |
s, err := shmClient(m, url, args...) |
Z |
43 |
if err != nil { |
|
44 |
s = nil |
|
45 |
} |
c2bbe3
|
46 |
return s |
9d4b12
|
47 |
} |
Z |
48 |
|
|
49 |
return nil |
|
50 |
} |
c2bbe3
|
51 |
|
Z |
52 |
// NewServerWithError create listener args presentive for parameter with protocal, e.g. sub topic |
|
53 |
func NewServerWithError(m Mode, url string, args ...interface{}) (Deliver, error) { |
|
54 |
|
|
55 |
if m > ModeStart && m < ModeNNG { |
2cb8af
|
56 |
s := nngServer(m, url, args...) |
Z |
57 |
if s == nil { |
|
58 |
return nil, errors.New("nng create server error") |
|
59 |
} |
|
60 |
return s, nil |
c2bbe3
|
61 |
} else if m == Shm { |
Z |
62 |
return shmServer(m, url, args...) |
|
63 |
} |
|
64 |
return nil, errors.New("please choose a suitable deliver.mode") |
|
65 |
} |
|
66 |
|
|
67 |
// NewClientWithError create dialer args presentive for parameter with protocal, e.g. sub topic |
|
68 |
func NewClientWithError(m Mode, url string, args ...interface{}) (Deliver, error) { |
|
69 |
|
|
70 |
if m > ModeStart && m < ModeNNG { |
2cb8af
|
71 |
s := nngClient(m, url, args...) |
Z |
72 |
if s == nil { |
|
73 |
return nil, errors.New("nng create client error") |
|
74 |
} |
|
75 |
return s, nil |
c2bbe3
|
76 |
} else if m == Shm { |
Z |
77 |
return shmClient(m, url, args...) |
|
78 |
} |
|
79 |
|
|
80 |
return nil, errors.New("please choose a suitable deliver.mode") |
|
81 |
} |
dd22fd
|
82 |
|
Z |
83 |
// NewServerWithTimeout with timeout |
|
84 |
func NewServerWithTimeout(m Mode, url string, tm int, args ...interface{}) (Deliver, error) { |
|
85 |
if m > ModeStart && m < ModeNNG { |
|
86 |
setTimeOut(tm) |
|
87 |
s := nngServer(m, url, args...) |
|
88 |
if s == nil { |
|
89 |
return nil, errors.New("nng create server error") |
|
90 |
} |
|
91 |
return s, nil |
|
92 |
} else if m == Shm { |
|
93 |
return shmServer(m, url, args...) |
|
94 |
} |
|
95 |
return nil, errors.New("please choose a suitable deliver.mode") |
|
96 |
} |
|
97 |
|
|
98 |
// NewClientWithTimeout with timeout, tm unit millisecond |
|
99 |
func NewClientWithTimeout(m Mode, url string, tm int, args ...interface{}) (Deliver, error) { |
|
100 |
if m > ModeStart && m < ModeNNG { |
|
101 |
setTimeOut(tm) |
|
102 |
|
|
103 |
s := nngClient(m, url, args...) |
|
104 |
if s == nil { |
|
105 |
return nil, errors.New("nng create client error") |
|
106 |
} |
|
107 |
return s, nil |
|
108 |
} else if m == Shm { |
|
109 |
return shmClient(m, url, args...) |
|
110 |
} |
|
111 |
|
|
112 |
return nil, errors.New("please choose a suitable deliver.mode") |
|
113 |
} |