Beispiel #1
0
func dataError(prefix string, data *C.pn_data_t) error {
	err := internal.PnError(unsafe.Pointer(C.pn_data_error(data)))
	if err != nil {
		err = internal.Errorf("%s: %s", prefix, err.(internal.Error))
	}
	return err
}
Beispiel #2
0
func dataError(prefix string, data *C.pn_data_t) error {
	err := PnError(C.pn_data_error(data))
	if err != nil {
		err = fmt.Errorf("%s: %s", prefix, err.Error())
	}
	return err
}
Beispiel #3
0
// decode from bytes.
// Return bytes decoded or 0 if we could not decode a complete object.
//
func decode(data *C.pn_data_t, bytes []byte) (int, error) {
	if len(bytes) == 0 {
		return 0, nil
	}
	n := int(C.pn_data_decode(data, cPtr(bytes), cLen(bytes)))
	if n == int(C.PN_UNDERFLOW) {
		C.pn_error_clear(C.pn_data_error(data))
		return 0, nil
	} else if n <= 0 {
		return 0, fmt.Errorf("unmarshal %s", PnErrorCode(n))
	}
	return n, nil
}
Beispiel #4
0
// decode from bytes.
// Return bytes decoded or 0 if we could not decode a complete object.
//
func decode(data *C.pn_data_t, bytes []byte) int {
	if len(bytes) == 0 {
		return 0
	}
	n := int(C.pn_data_decode(data, cPtr(bytes), cLen(bytes)))
	if n == int(C.PN_UNDERFLOW) {
		C.pn_error_clear(C.pn_data_error(data))
		return 0
	} else if n <= 0 {
		panic(internal.Errorf("unmarshal %s", internal.PnErrorCode(n)))
	}
	return n
}
Beispiel #5
0
func (d Data) Error() error            { return PnError(C.pn_data_error(d.pn)) }