コード例 #1
0
ファイル: function.go プロジェクト: npowern/gosqlite
// UserData returns the user data for functions.
// (See http://sqlite.org/c3ref/user_data.html)
func (c *FunctionContext) UserData() interface{} {
	udf := (*sqliteFunction)(C.sqlite3_user_data(c.sc))
	return udf.pApp
}
コード例 #2
0
ファイル: callback.go プロジェクト: mattn/go-sqlite3
//export doneTrampoline
func doneTrampoline(ctx *C.sqlite3_context) {
	handle := uintptr(C.sqlite3_user_data(ctx))
	ai := lookupHandle(handle).(*aggInfo)
	ai.Done(ctx)
}
コード例 #3
0
ファイル: callback.go プロジェクト: mattn/go-sqlite3
//export stepTrampoline
func stepTrampoline(ctx *C.sqlite3_context, argc C.int, argv **C.sqlite3_value) {
	args := (*[(math.MaxInt32 - 1) / unsafe.Sizeof((*C.sqlite3_value)(nil))]*C.sqlite3_value)(unsafe.Pointer(argv))[:int(argc):int(argc)]
	ai := lookupHandle(uintptr(C.sqlite3_user_data(ctx))).(*aggInfo)
	ai.Step(ctx, args)
}
コード例 #4
0
ファイル: callback.go プロジェクト: mattn/go-sqlite3
//export callbackTrampoline
func callbackTrampoline(ctx *C.sqlite3_context, argc int, argv **C.sqlite3_value) {
	args := (*[(math.MaxInt32 - 1) / unsafe.Sizeof((*C.sqlite3_value)(nil))]*C.sqlite3_value)(unsafe.Pointer(argv))[:argc:argc]
	fi := lookupHandle(uintptr(C.sqlite3_user_data(ctx))).(*functionInfo)
	fi.Call(ctx, args)
}
コード例 #5
0
ファイル: callback.go プロジェクト: Colearo/fabric
//export doneTrampoline
func doneTrampoline(ctx *C.sqlite3_context) {
	ai := (*aggInfo)(unsafe.Pointer(C.sqlite3_user_data(ctx)))
	ai.Done(ctx)
}
コード例 #6
0
ファイル: callback.go プロジェクト: Colearo/fabric
//export stepTrampoline
func stepTrampoline(ctx *C.sqlite3_context, argc int, argv **C.sqlite3_value) {
	args := (*[(math.MaxInt32 - 1) / unsafe.Sizeof((*C.sqlite3_value)(nil))]*C.sqlite3_value)(unsafe.Pointer(argv))[:argc:argc]
	ai := (*aggInfo)(unsafe.Pointer(C.sqlite3_user_data(ctx)))
	ai.Step(ctx, args)
}