func getMetadata(rw *bufio.ReadWriter, key []byte) ([]byte, metadata, error) { metaKey := metaKey(key) if err := binprot.WriteGetCmd(rw, metaKey); err != nil { return nil, emptyMeta, err } metaData, err := getMetadataCommon(rw) return metaKey, metaData, err }
func realHandleGet(cmd common.GetRequest, dataOut chan common.GetResponse, errorOut chan error, rw *bufio.ReadWriter) { defer close(errorOut) defer close(dataOut) for idx, key := range cmd.Keys { if err := binprot.WriteGetCmd(rw.Writer, key); err != nil { errorOut <- err return } data, flags, _, err := getLocal(rw, false) if err != nil { if err == common.ErrKeyNotFound { dataOut <- common.GetResponse{ Miss: true, Quiet: cmd.Quiet[idx], Opaque: cmd.Opaques[idx], Flags: flags, Key: key, Data: nil, } continue } errorOut <- err return } dataOut <- common.GetResponse{ Miss: false, Quiet: cmd.Quiet[idx], Opaque: cmd.Opaques[idx], Flags: flags, Key: key, Data: data, } } }