/
JSCVirtualMachine.go
103 lines (82 loc) · 2.57 KB
/
JSCVirtualMachine.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
// Code generated by girgen. DO NOT EDIT.
package javascriptcore
import (
"unsafe"
"github.com/diamondburned/gotk4/pkg/core/gextras"
coreglib "github.com/diamondburned/gotk4/pkg/core/glib"
)
// #include <stdlib.h>
// #include <glib-object.h>
// #include <jsc/jsc.h>
import "C"
// GType values.
var (
GTypeVirtualMachine = coreglib.Type(C.jsc_virtual_machine_get_type())
)
func init() {
coreglib.RegisterGValueMarshalers([]coreglib.TypeMarshaler{
coreglib.TypeMarshaler{T: GTypeVirtualMachine, F: marshalVirtualMachine},
})
}
// VirtualMachineOverrides contains methods that are overridable.
type VirtualMachineOverrides struct {
}
func defaultVirtualMachineOverrides(v *VirtualMachine) VirtualMachineOverrides {
return VirtualMachineOverrides{}
}
// VirtualMachine represents a group of JSCContext<!-- -->s. It allows
// concurrent JavaScript execution by creating a different instance of
// JSCVirtualMachine in each thread.
//
// To create a group of JSCContext<!-- -->s pass the same JSCVirtualMachine
// instance to every JSCContext constructor.
type VirtualMachine struct {
_ [0]func() // equal guard
*coreglib.Object
}
var (
_ coreglib.Objector = (*VirtualMachine)(nil)
)
func init() {
coreglib.RegisterClassInfo[*VirtualMachine, *VirtualMachineClass, VirtualMachineOverrides](
GTypeVirtualMachine,
initVirtualMachineClass,
wrapVirtualMachine,
defaultVirtualMachineOverrides,
)
}
func initVirtualMachineClass(gclass unsafe.Pointer, overrides VirtualMachineOverrides, classInitFunc func(*VirtualMachineClass)) {
if classInitFunc != nil {
class := (*VirtualMachineClass)(gextras.NewStructNative(gclass))
classInitFunc(class)
}
}
func wrapVirtualMachine(obj *coreglib.Object) *VirtualMachine {
return &VirtualMachine{
Object: obj,
}
}
func marshalVirtualMachine(p uintptr) (interface{}, error) {
return wrapVirtualMachine(coreglib.ValueFromNative(unsafe.Pointer(p)).Object()), nil
}
// NewVirtualMachine: create a new CVirtualMachine.
//
// The function returns the following values:
//
// - virtualMachine: newly created CVirtualMachine.
//
func NewVirtualMachine() *VirtualMachine {
var _cret *C.JSCVirtualMachine // in
_cret = C.jsc_virtual_machine_new()
var _virtualMachine *VirtualMachine // out
_virtualMachine = wrapVirtualMachine(coreglib.AssumeOwnership(unsafe.Pointer(_cret)))
return _virtualMachine
}
// VirtualMachineClass: instance of this type is always passed by reference.
type VirtualMachineClass struct {
*virtualMachineClass
}
// virtualMachineClass is the struct that's finalized.
type virtualMachineClass struct {
native *C.JSCVirtualMachineClass
}