当前位置: 首页>>代码示例>>Golang>>正文


Golang C.MojoHandle函数代码示例

本文整理汇总了Golang中C.MojoHandle函数的典型用法代码示例。如果您正苦于以下问题:Golang MojoHandle函数的具体用法?Golang MojoHandle怎么用?Golang MojoHandle使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了MojoHandle函数的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: ReadData

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
}
开发者ID:smishenk,项目名称:chromium-crosswalk,代码行数:10,代码来源:system_cgo.go

示例2: MapBuffer

func (c *CGoSystem) MapBuffer(handle uint32, offset, numBytes uint64, flags uint32) (result uint32, buf []byte) {
	var bufPtr unsafe.Pointer
	r := C.MojoMapBuffer(C.MojoHandle(handle), C.uint64_t(offset), C.uint64_t(numBytes), &bufPtr, C.MojoMapBufferFlags(flags))
	if r != C.MOJO_RESULT_OK {
		return uint32(r), nil
	}
	return uint32(r), unsafeByteSlice(bufPtr, int(numBytes))
}
开发者ID:willbittner,项目名称:mojo,代码行数:8,代码来源:system_cgo.go

示例3: BeginReadData

func (c *CGoSystem) BeginReadData(consumerHandle uint32, flags uint32) (result uint32, buf []byte) {
	var buffer unsafe.Pointer
	var bufferNumBytes C.uint32_t
	r := C.MojoBeginReadData(C.MojoHandle(consumerHandle), &buffer, &bufferNumBytes, C.MojoReadDataFlags(flags))
	if r != C.MOJO_RESULT_OK {
		return uint32(r), nil
	}
	return uint32(r), unsafeByteSlice(buffer, int(bufferNumBytes))
}
开发者ID:willbittner,项目名称:mojo,代码行数:9,代码来源:system_cgo.go

示例4: BeginWriteData

func (c *CGoSystem) BeginWriteData(producerHandle uint32, numBytes uint32, flags uint32) (result uint32, buf []byte) {
	var buffer unsafe.Pointer
	bufferNumBytes := C.uint32_t(numBytes)
	r := C.MojoBeginWriteData(C.MojoHandle(producerHandle), &buffer, &bufferNumBytes, C.MojoWriteDataFlags(flags))
	if r != C.MOJO_RESULT_OK {
		return uint32(r), nil
	}
	return uint32(r), unsafeByteSlice(buffer, int(bufferNumBytes))
}
开发者ID:smishenk,项目名称:chromium-crosswalk,代码行数:9,代码来源:system_cgo.go

示例5: DuplicateBufferHandle

func (c *CGoSystem) DuplicateBufferHandle(handle uint32, flags uint32) (uint32, uint32) {
	var opts *C.struct_MojoDuplicateBufferHandleOptions
	opts = &C.struct_MojoDuplicateBufferHandleOptions{
		C.uint32_t(unsafe.Sizeof(*opts)),
		C.MojoDuplicateBufferHandleOptionsFlags(flags),
	}
	var cDuplicateHandle C.MojoHandle
	r := C.DuplicateBufferHandle(C.MojoHandle(handle), opts, &cDuplicateHandle)
	return uint32(r), uint32(cDuplicateHandle)
}
开发者ID:willbittner,项目名称:mojo,代码行数:10,代码来源:system_cgo.go

示例6: WriteMessage

func (c *CGoSystem) WriteMessage(handle uint32, bytes []byte, handles []uint32, flags uint32) (result uint32) {
	var bytesPtr unsafe.Pointer
	if len(bytes) != 0 {
		bytesPtr = unsafe.Pointer(&bytes[0])
	}
	var handlesPtr *C.MojoHandle
	if len(handles) != 0 {
		handlesPtr = (*C.MojoHandle)(unsafe.Pointer(&handles[0]))
	}
	return uint32(C.MojoWriteMessage(C.MojoHandle(handle), bytesPtr, C.uint32_t(len(bytes)), handlesPtr, C.uint32_t(len(handles)), C.MojoWriteMessageFlags(flags)))
}
开发者ID:willbittner,项目名称:mojo,代码行数:11,代码来源:system_cgo.go

示例7: ReadMessage

func (c *CGoSystem) ReadMessage(handle uint32, flags uint32) (result uint32, buf []byte, handles []uint32) {
	var numBytes, numHandles C.uint32_t
	cHandle := C.MojoHandle(handle)
	cFlags := C.MojoReadMessageFlags(flags)
	if r := C.MojoReadMessage(cHandle, nil, &numBytes, nil, &numHandles, cFlags); r != C.MOJO_RESULT_RESOURCE_EXHAUSTED {
		return uint32(r), nil, nil
	}
	var bufPtr unsafe.Pointer
	if numBytes != 0 {
		buf = make([]byte, int(numBytes))
		bufPtr = unsafe.Pointer(&buf[0])
	}
	var handlesPtr *C.MojoHandle
	if numHandles != 0 {
		handles = make([]uint32, int(numHandles))
		handlesPtr = (*C.MojoHandle)(unsafe.Pointer(&handles[0]))
	}
	r := C.MojoReadMessage(cHandle, bufPtr, &numBytes, handlesPtr, &numHandles, cFlags)
	return uint32(r), buf, handles
}
开发者ID:willbittner,项目名称:mojo,代码行数:20,代码来源:system_cgo.go

示例8: Wait

func (c *CGoSystem) Wait(handle uint32, signals uint32, deadline uint64) (result uint32, satisfiedSignals, satisfiableSignals uint32) {
	var cState C.struct_MojoHandleSignalsState
	r := C.MojoWait(C.MojoHandle(handle), C.MojoHandleSignals(signals), C.MojoDeadline(deadline), &cState)
	return uint32(r), uint32(cState.satisfied_signals), uint32(cState.satisfiable_signals)
}
开发者ID:willbittner,项目名称:mojo,代码行数:5,代码来源:system_cgo.go

示例9: Close

func (c *CGoSystem) Close(handle uint32) (result uint32) {
	return uint32(C.MojoClose(C.MojoHandle(handle)))
}
开发者ID:willbittner,项目名称:mojo,代码行数:3,代码来源:system_cgo.go

示例10: EndReadData

func (c *CGoSystem) EndReadData(consumerHandle uint32, numBytesRead uint32) (result uint32) {
	return uint32(C.MojoEndReadData(C.MojoHandle(consumerHandle), C.uint32_t(numBytesRead)))
}
开发者ID:willbittner,项目名称:mojo,代码行数:3,代码来源:system_cgo.go

示例11: EndWriteData

func (c *CGoSystem) EndWriteData(producerHandle uint32, numBytesWritten uint32) (result uint32) {
	return uint32(C.MojoEndWriteData(C.MojoHandle(producerHandle), C.uint32_t(numBytesWritten)))
}
开发者ID:willbittner,项目名称:mojo,代码行数:3,代码来源:system_cgo.go

示例12: WriteData

func (c *CGoSystem) WriteData(producerHandle uint32, buf []byte, flags uint32) (result uint32, bytesWritten uint32) {
	numBytes := C.uint32_t(len(buf))
	r := C.MojoWriteData(C.MojoHandle(producerHandle), unsafe.Pointer(&buf[0]), &numBytes, C.MojoWriteDataFlags(flags))
	return uint32(r), uint32(numBytes)
}
开发者ID:willbittner,项目名称:mojo,代码行数:5,代码来源:system_cgo.go


注:本文中的C.MojoHandle函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。