Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
0ef035ef
提交
0ef035ef
authored
12月 29, 2014
作者:
Juan Batiz-Benet
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
combined protocol and mux
上级
e0b9a368
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
11 行增加
和
13 行删除
+11
-13
mux.go
p2p/protocol/mux.go
+7
-8
mux_test.go
p2p/protocol/mux_test.go
+4
-5
没有找到文件。
p2p/protocol/mux
/mux
.go
→
p2p/protocol/mux.go
浏览文件 @
0ef035ef
package
mux
package
protocol
import
(
"fmt"
...
...
@@ -8,14 +8,13 @@ import (
context
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
inet
"github.com/jbenet/go-ipfs/p2p/net"
protocol
"github.com/jbenet/go-ipfs/p2p/protocol"
eventlog
"github.com/jbenet/go-ipfs/util/eventlog"
lgbl
"github.com/jbenet/go-ipfs/util/eventlog/loggables"
)
var
log
=
eventlog
.
Logger
(
"net/mux"
)
type
StreamHandlerMap
map
[
protocol
.
ID
]
inet
.
StreamHandler
type
StreamHandlerMap
map
[
ID
]
inet
.
StreamHandler
// Mux provides simple stream multixplexing.
// It helps you precisely when:
...
...
@@ -35,9 +34,9 @@ type Mux struct {
}
// Protocols returns the list of protocols this muxer has handlers for
func
(
m
*
Mux
)
Protocols
()
[]
protocol
.
ID
{
func
(
m
*
Mux
)
Protocols
()
[]
ID
{
m
.
RLock
()
l
:=
make
([]
protocol
.
ID
,
0
,
len
(
m
.
Handlers
))
l
:=
make
([]
ID
,
0
,
len
(
m
.
Handlers
))
for
p
:=
range
m
.
Handlers
{
l
=
append
(
l
,
p
)
}
...
...
@@ -47,9 +46,9 @@ func (m *Mux) Protocols() []protocol.ID {
// readHeader reads the stream and returns the next Handler function
// according to the muxer encoding.
func
(
m
*
Mux
)
readHeader
(
s
io
.
Reader
)
(
protocol
.
ID
,
inet
.
StreamHandler
,
error
)
{
func
(
m
*
Mux
)
readHeader
(
s
io
.
Reader
)
(
ID
,
inet
.
StreamHandler
,
error
)
{
// log.Error("ReadProtocolHeader")
p
,
err
:=
protocol
.
ReadHeader
(
s
)
p
,
err
:=
ReadHeader
(
s
)
if
err
!=
nil
{
return
""
,
nil
,
err
}
...
...
@@ -78,7 +77,7 @@ func (m *Mux) String() string {
// SetHandler sets the protocol handler on the Network's Muxer.
// This operation is threadsafe.
func
(
m
*
Mux
)
SetHandler
(
p
protocol
.
ID
,
h
inet
.
StreamHandler
)
{
func
(
m
*
Mux
)
SetHandler
(
p
ID
,
h
inet
.
StreamHandler
)
{
log
.
Debugf
(
"%s setting handler for protocol: %s (%d)"
,
m
,
p
,
len
(
p
))
m
.
Lock
()
m
.
Handlers
[
p
]
=
h
...
...
p2p/protocol/mux
/mux
_test.go
→
p2p/protocol/mux_test.go
浏览文件 @
0ef035ef
package
mux
package
protocol
import
(
"bytes"
"testing"
inet
"github.com/jbenet/go-ipfs/p2p/net"
protocol
"github.com/jbenet/go-ipfs/p2p/protocol"
)
var
testCases
=
map
[
string
]
string
{
...
...
@@ -18,7 +17,7 @@ var testCases = map[string]string{
func
TestWrite
(
t
*
testing
.
T
)
{
for
k
,
v
:=
range
testCases
{
var
buf
bytes
.
Buffer
if
err
:=
protocol
.
WriteHeader
(
&
buf
,
protocol
.
ID
(
k
));
err
!=
nil
{
if
err
:=
WriteHeader
(
&
buf
,
ID
(
k
));
err
!=
nil
{
t
.
Fatal
(
err
)
}
...
...
@@ -53,13 +52,13 @@ func TestHandler(t *testing.T) {
continue
}
name
,
err
:=
protocol
.
ReadHeader
(
&
buf
)
name
,
err
:=
ReadHeader
(
&
buf
)
if
err
!=
nil
{
t
.
Error
(
err
)
continue
}
if
name
!=
protocol
.
ID
(
k
)
{
if
name
!=
ID
(
k
)
{
t
.
Errorf
(
"name mismatch: %s != %s"
,
k
,
name
)
continue
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论