當前位置: 首頁>>代碼示例>>Golang>>正文


Golang errors.Trace函數代碼示例

本文整理匯總了Golang中github.com/reborndb/go/errors.Trace函數的典型用法代碼示例。如果您正苦於以下問題:Golang Trace函數的具體用法?Golang Trace怎麽用?Golang Trace使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了Trace函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: EncodeObject

func (e *Encoder) EncodeObject(db uint32, key []byte, expireat uint64, obj interface{}) error {
	o, ok := obj.(objectEncoder)
	if !ok {
		return errors.New("unsupported object type")
	}
	if e.db == -1 || uint32(e.db) != db {
		e.db = int64(db)
		if err := e.enc.EncodeDatabase(int(db)); err != nil {
			return errors.Trace(err)
		}
	}
	if expireat != 0 {
		if err := e.enc.EncodeExpiry(expireat); err != nil {
			return errors.Trace(err)
		}
	}
	if err := o.encodeType(e.enc); err != nil {
		return err
	}
	if err := e.enc.EncodeString(key); err != nil {
		return errors.Trace(err)
	}
	if err := o.encodeValue(e.enc); err != nil {
		return err
	}
	return nil
}
開發者ID:shitfSign,項目名稱:qdb,代碼行數:27,代碼來源:encoder.go

示例2: decodeRequest

func (d *decoder) decodeRequest() (Resp, error) {
	t, err := d.decodeType()
	if err != nil {
		return nil, err
	}
	switch t {
	default:
		if !isLetter(byte(t)) {
			return nil, errors.Trace(ErrBadRespType)
		}
		// may be it's telnet text format
		d.r.UnreadByte()

		t, err := d.decodeText()
		if err != nil {
			return nil, err
		}

		items := strings.Fields(t)
		resp := &Array{}
		for _, item := range items {
			resp.AppendBulkBytes([]byte(item))
		}
		return resp, nil

	case TypeString, TypeError, TypeInt, TypeBulkBytes:
		return nil, errors.Trace(ErrBadRespType)
	case TypePing:
		return NewPing(), nil
	case TypeArray:
		resp := &Array{}
		resp.Value, err = d.decodeArray()
		return resp, err
	}
}
開發者ID:shitfSign,項目名稱:qdb,代碼行數:35,代碼來源:decoder.go

示例3: encodeResp

func (e *encoder) encodeResp(r Resp) error {
	switch x := r.(type) {
	default:
		return errors.Trace(ErrBadRespType)
	case *String:
		if err := e.encodeType(TypeString); err != nil {
			return err
		}
		return e.encodeText(x.Value)
	case *Error:
		if err := e.encodeType(TypeError); err != nil {
			return err
		}
		return e.encodeText(x.Value)
	case *Int:
		if err := e.encodeType(TypeInt); err != nil {
			return err
		}
		return e.encodeInt(x.Value)
	case *BulkBytes:
		if err := e.encodeType(TypeBulkBytes); err != nil {
			return err
		}
		return e.encodeBulkBytes(x.Value)
	case *Array:
		if err := e.encodeType(TypeArray); err != nil {
			return err
		}
		return e.encodeArray(x.Value)
	case Ping:
		return errors.Trace(e.w.WriteByte('\n'))
	}
}
開發者ID:shitfSign,項目名稱:qdb,代碼行數:33,代碼來源:encoder.go

示例4: encodeText

func (e *encoder) encodeText(s string) error {
	if _, err := e.w.WriteString(s); err != nil {
		return errors.Trace(err)
	}
	if _, err := e.w.WriteString("\r\n"); err != nil {
		return errors.Trace(err)
	}
	return nil
}
開發者ID:shitfSign,項目名稱:qdb,代碼行數:9,代碼來源:encoder.go

示例5: decodeText

func (d *decoder) decodeText() (string, error) {
	b, err := d.r.ReadBytes('\n')
	if err != nil {
		return "", errors.Trace(err)
	}
	if n := len(b) - 2; n < 0 || b[n] != '\r' {
		return "", errors.Trace(ErrBadRespEnd)
	} else {
		return string(b[:n]), nil
	}
}
開發者ID:shitfSign,項目名稱:qdb,代碼行數:11,代碼來源:decoder.go

示例6: encodeValue

func (o Set) encodeValue(enc *rdb.Encoder) error {
	if err := enc.EncodeLength(uint32(len(o))); err != nil {
		return errors.Trace(err)
	}
	for _, e := range o {
		if err := enc.EncodeString(e); err != nil {
			return errors.Trace(err)
		}
	}
	return nil
}
開發者ID:shitfSign,項目名稱:qdb,代碼行數:11,代碼來源:encoder.go

示例7: encodeBulkBytes

func (e *encoder) encodeBulkBytes(b []byte) error {
	if b == nil {
		return e.encodeInt(-1)
	} else {
		if err := e.encodeInt(int64(len(b))); err != nil {
			return err
		}
		if _, err := e.w.Write(b); err != nil {
			return errors.Trace(err)
		}
		if _, err := e.w.WriteString("\r\n"); err != nil {
			return errors.Trace(err)
		}
		return nil
	}
}
開發者ID:shitfSign,項目名稱:qdb,代碼行數:16,代碼來源:encoder.go

示例8: DecodeDump

func DecodeDump(p []byte) (interface{}, error) {
	d := &decoder{}
	if err := rdb.DecodeDump(p, 0, nil, 0, d); err != nil {
		return nil, errors.Trace(err)
	}
	return d.obj, d.err
}
開發者ID:shitfSign,項目名稱:qdb,代碼行數:7,代碼來源:decoder.go

示例9: decodeResp

func (d *decoder) decodeResp() (Resp, error) {
	t, err := d.decodeType()
	if err != nil {
		return nil, err
	}
	switch t {
	default:
		return nil, errors.Trace(ErrBadRespType)
	case TypeString:
		resp := &String{}
		resp.Value, err = d.decodeText()
		return resp, err
	case TypeError:
		resp := &Error{}
		resp.Value, err = d.decodeText()
		return resp, err
	case TypeInt:
		resp := &Int{}
		resp.Value, err = d.decodeInt()
		return resp, err
	case TypeBulkBytes:
		resp := &BulkBytes{}
		resp.Value, err = d.decodeBulkBytes()
		return resp, err
	case TypeArray:
		resp := &Array{}
		resp.Value, err = d.decodeArray()
		return resp, err
	case TypePing:
		return NewPing(), nil
	}
}
開發者ID:shitfSign,項目名稱:qdb,代碼行數:32,代碼來源:decoder.go

示例10: decodeType

func (d *decoder) decodeType() (RespType, error) {
	if b, err := d.r.ReadByte(); err != nil {
		return 0, errors.Trace(err)
	} else {
		return RespType(b), nil
	}
}
開發者ID:shitfSign,項目名稱:qdb,代碼行數:7,代碼來源:decoder.go

示例11: OpenFile

func OpenFile(fileName string, exclusive bool) (*os.File, error) {
	flag := os.O_CREATE | os.O_RDWR | os.O_TRUNC
	if exclusive {
		flag |= os.O_EXCL
	}
	f, err := os.OpenFile(fileName, flag, 0600)
	return f, errors.Trace(err)
}
開發者ID:shitfSign,項目名稱:qdb,代碼行數:8,代碼來源:pipe.go

示例12: Parse

func Parse(s string) (int64, error) {
	if !BytesizeRegexp.MatchString(s) {
		return 0, errors.Trace(ErrBadBytesize)
	}

	subs := BytesizeRegexp.FindStringSubmatch(s)
	if len(subs) != 3 {
		return 0, errors.Trace(ErrBadBytesize)
	}

	size := int64(0)
	switch strings.ToUpper(string(subs[2])) {
	case "B", "":
		size = 1
	case "KB", "K":
		size = KB
	case "MB", "M":
		size = MB
	case "GB", "G":
		size = GB
	case "TB", "T":
		size = TB
	case "PB", "P":
		size = PB
	default:
		return 0, errors.Trace(ErrBadBytesizeUnit)
	}

	text := subs[1]
	if digitsRegexp.MatchString(text) {
		n, err := strconv.ParseInt(text, 10, 64)
		if err != nil {
			return 0, errors.Trace(ErrBadBytesize)
		}
		size *= n
	} else {
		n, err := strconv.ParseFloat(text, 64)
		if err != nil {
			return 0, errors.Trace(ErrBadBytesize)
		}
		size = int64(float64(size) * n)
	}
	return size, nil
}
開發者ID:shitfSign,項目名稱:qdb,代碼行數:44,代碼來源:bytesize.go

示例13: Write

func (w *simpleWriter) Write(b []byte) (int, error) {
	if w.err != nil {
		return 0, w.err
	}
	n, err := w.w.Write(b)
	if err != nil {
		w.err = errors.Trace(err)
	}
	return n, w.err
}
開發者ID:shitfSign,項目名稱:qdb,代碼行數:10,代碼來源:simpleio.go

示例14: decodeBulkBytes

func (d *decoder) decodeBulkBytes() ([]byte, error) {
	n, err := d.decodeInt()
	if err != nil {
		return nil, err
	}
	if n < -1 {
		return nil, errors.Trace(ErrBadRespBytesLen)
	} else if n == -1 {
		return nil, nil
	}
	b := make([]byte, n+2)
	if _, err := ioutils.ReadFull(d.r, b); err != nil {
		return nil, errors.Trace(err)
	}
	if b[n] != '\r' || b[n+1] != '\n' {
		return nil, errors.Trace(ErrBadRespEnd)
	}
	return b[:n], nil
}
開發者ID:shitfSign,項目名稱:qdb,代碼行數:19,代碼來源:decoder.go

示例15: Read

func (r *simpleReader) Read(b []byte) (int, error) {
	if r.err != nil {
		return 0, r.err
	}
	n, err := r.r.Read(b)
	if err != nil {
		r.err = errors.Trace(err)
	}
	return n, r.err
}
開發者ID:shitfSign,項目名稱:qdb,代碼行數:10,代碼來源:simpleio.go


注:本文中的github.com/reborndb/go/errors.Trace函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。