本文整理汇总了Golang中github.com/dustin/gomemcached.MCResponse.Transmit方法的典型用法代码示例。如果您正苦于以下问题:Golang MCResponse.Transmit方法的具体用法?Golang MCResponse.Transmit怎么用?Golang MCResponse.Transmit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/dustin/gomemcached.MCResponse
的用法示例。
在下文中一共展示了MCResponse.Transmit方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: sendAck
func (mc *Client) sendAck(pkt *gomemcached.MCRequest) (int, error) {
res := gomemcached.MCResponse{
Opcode: pkt.Opcode,
Opaque: pkt.Opaque,
Status: gomemcached.SUCCESS,
}
return res.Transmit(mc.conn)
}
示例2: vbRGet
func vbRGet(v *VBucket, w io.Writer, req *gomemcached.MCRequest) (
res *gomemcached.MCResponse) {
// From http://code.google.com/p/memcached/wiki/RangeOps
// Extras field Bits
// ------------------
// End key len 16
// Reserved 8
// Flags 8
// Max results 32
res = &gomemcached.MCResponse{
Opcode: req.Opcode,
Cas: req.Cas,
}
extras := make([]byte, 4)
visitRGetResults := int64(0)
visitOutgoingValueBytes := int64(0)
visitor := func(i *item) bool {
if bytes.Compare(i.key, req.Key) >= 0 {
// TODO: Need to hide expired items from range scan.
binary.BigEndian.PutUint32(extras, i.flag)
r := gomemcached.MCResponse{
Opcode: req.Opcode,
Key: i.key,
Cas: i.cas,
Extras: extras,
Body: i.data,
}
err := r.Transmit(w)
if err != nil {
res = &gomemcached.MCResponse{Fatal: true}
return false
}
visitRGetResults++
visitOutgoingValueBytes += int64(len(i.data))
}
return true
}
if err := v.ps.visitItems(req.Key, true, visitor); err != nil {
res = &gomemcached.MCResponse{Fatal: true}
}
atomic.AddInt64(&v.stats.RGets, 1)
atomic.AddInt64(&v.stats.RGetResults, visitRGetResults)
atomic.AddInt64(&v.stats.OutgoingValueBytes, visitOutgoingValueBytes)
return res
}
示例3: transmitResponse
func transmitResponse(o io.Writer, res *gomemcached.MCResponse) (err error) {
return res.Transmit(o)
}