func (h Handler) GAT(cmd common.GATRequest) (common.GetResponse, error) { if err := binprot.WriteGATCmd(h.rw.Writer, cmd.Key, cmd.Exptime); err != nil { return common.GetResponse{}, err } data, flags, _, err := getLocal(h.rw, false) if err != nil { if err == common.ErrKeyNotFound { return common.GetResponse{ Miss: true, Quiet: false, Opaque: cmd.Opaque, Flags: flags, Key: cmd.Key, Data: nil, }, nil } return common.GetResponse{}, err } return common.GetResponse{ Miss: false, Quiet: false, Opaque: cmd.Opaque, Flags: flags, Key: cmd.Key, Data: data, }, nil }
func (h Handler) GAT(cmd common.GATRequest) (common.GetResponse, error) { if err := binprot.WriteGATCmd(h.rw.Writer, cmd.Key, cmd.Exptime); err != nil { return common.GetResponse{}, err } data, flags, err := getLocal(h.rw) if err != nil { if err == common.ErrKeyNotFound { //fmt.Println("GAT miss because of missing metadata. Key:", key) return common.GetResponse{ Miss: true, Quiet: false, Opaque: cmd.Opaque, Flags: flags, Key: cmd.Key, Data: nil, }, nil } return common.GetResponse{}, err } return common.GetResponse{ Miss: false, Quiet: false, Opaque: cmd.Opaque, Flags: flags, Key: cmd.Key, Data: data, }, nil }
func getAndTouchMetadata(rw *bufio.ReadWriter, key []byte, exptime uint32) ([]byte, metadata, error) { metaKey := metaKey(key) if err := binprot.WriteGATCmd(rw, metaKey, exptime); err != nil { return nil, emptyMeta, err } metaData, err := getMetadataCommon(rw) return metaKey, metaData, err }