您的位置:首页 > 编程语言

15.go开源groupcache项目笔记——sinks代码

2016-07-26 23:28 393 查看
15.go开源groupcache项目笔记——sinks代码

结构体和接口

类型Sink

为接口。

type Sink interface {

         SetString(sstring) error

         SetBytes(v[]byte) error

         SetProto(mproto.Message) error

         view()(ByteView, error)

}

然后定义了不同的结构体。每个结构体都实现各自的接口。

stringSink

type stringSink struct {

         sp*string

         v  ByteView

}

byteViewSink

type byteViewSink struct {

         dst*ByteView

}

protoSink

type protoSink struct {

         dstproto.Message // authorative value

         typstring

 

         vByteView // encoded

}

truncBytesSink

type truncBytesSink struct {

         dst*[]byte

         v   ByteView

}

allocBytesSink

type allocBytesSink struct {

         dst*[]byte

         v   ByteView

}

cloneBytes函数

返回byte数组,复制参数b的数组。

setSinkView函数

入参为Sink,    ByteView.

包含一个viewSetter接口,接口包含setView函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: