Beispiel #1
0
func (c *CoreImpl) ReadData(consumer MojoHandle, flags MojoReadDataFlags) (MojoResult, []byte) {
	var num_bytes C.uint32_t
	var result C.MojoResult
	if result = C.MojoReadData(consumer.cType(), nil, &num_bytes, C.MOJO_READ_DATA_FLAG_QUERY); result != C.MOJO_RESULT_OK {
		return (MojoResult)(result), nil
	}
	data := make([]byte, (uint32)(num_bytes))
	result = C.MojoReadData(consumer.cType(), cArrayBytes(data), &num_bytes, flags.cType())
	return (MojoResult)(result), data
}
func (c *CGoSystem) ReadData(consumerHandle uint32, flags uint32) (result uint32, buf []byte) {
	var numBytes C.uint32_t
	if r := C.MojoReadData(C.MojoHandle(consumerHandle), nil, &numBytes, C.MOJO_READ_DATA_FLAG_QUERY); r != C.MOJO_RESULT_OK {
		return uint32(r), nil
	}
	buf = make([]byte, int(numBytes))
	r := C.MojoReadData(C.MojoHandle(consumerHandle), unsafe.Pointer(&buf[0]), &numBytes, C.MojoReadDataFlags(flags))
	buf = buf[0:int(numBytes)]
	return uint32(r), buf
}