Greg
977a09e77e
Objective C type parameter declarations. Check Typedefs when determining if a Type is a pointer or a function.
104 lines
1.6 KiB
Go
104 lines
1.6 KiB
Go
package ClassOne
|
|
|
|
/*
|
|
#cgo CFLAGS: -x objective-c
|
|
#cgo LDFLAGS: -framework Foundation
|
|
|
|
#import "simple.h"
|
|
|
|
ClassOne*
|
|
NewClassOne() {
|
|
return [ClassOne alloc];
|
|
}
|
|
|
|
int
|
|
ClassOne_geti1(void* obj) {
|
|
return [(id)obj geti1];
|
|
}
|
|
int*
|
|
ClassOne_getp1(void* obj) {
|
|
return [(id)obj getp1];
|
|
}
|
|
int
|
|
ClassOne_hi1(void* obj, struct stru in) {
|
|
return [(id)obj hi1:in];
|
|
}
|
|
int
|
|
ClassOne_hi2(void* obj, void* in) {
|
|
return [(id)obj hi2:in];
|
|
}
|
|
struct stru
|
|
ClassOne_nstru1(void* obj) {
|
|
return [(id)obj nstru1];
|
|
}
|
|
struct stru*
|
|
ClassOne_nstru2(void* obj) {
|
|
return [(id)obj nstru2];
|
|
}
|
|
ClassOne*
|
|
ClassOne_init(void* obj) {
|
|
return [(id)obj init];
|
|
}
|
|
*/
|
|
import "C"
|
|
|
|
import (
|
|
"unsafe"
|
|
)
|
|
|
|
//ClassOne*
|
|
type ClassOne struct { NSObject }
|
|
|
|
//NSObject*
|
|
type NSObject struct { ptr unsafe.Pointer }
|
|
|
|
//int
|
|
type Int C.int
|
|
|
|
//struct stru
|
|
type Stru C.struct_stru
|
|
|
|
func NewClassOne() *ClassOne {
|
|
ret := &ClassOne{}
|
|
ret.ptr = unsafe.Pointer(C.NewClassOne())
|
|
//ret = ret.Init()
|
|
return ret
|
|
}
|
|
|
|
func (o *ClassOne) Geti1() Int {
|
|
return (Int)(C.ClassOne_geti1(o.ptr))
|
|
}
|
|
|
|
|
|
func (o *ClassOne) Getp1() *Int {
|
|
return (*Int)(unsafe.Pointer(C.ClassOne_getp1(o.ptr)))
|
|
}
|
|
|
|
|
|
func (o *ClassOne) Hi1(in Stru) Int {
|
|
return (Int)(C.ClassOne_hi1(o.ptr, (C.struct_stru)(in)))
|
|
}
|
|
|
|
|
|
func (o *ClassOne) Hi2(in *Stru) Int {
|
|
return (Int)(C.ClassOne_hi2(o.ptr, unsafe.Pointer(in)))
|
|
}
|
|
|
|
|
|
func (o *ClassOne) Nstru1() Stru {
|
|
return (Stru)(C.ClassOne_nstru1(o.ptr))
|
|
}
|
|
|
|
|
|
func (o *ClassOne) Nstru2() *Stru {
|
|
return (*Stru)(unsafe.Pointer(C.ClassOne_nstru2(o.ptr)))
|
|
}
|
|
|
|
|
|
func (o *ClassOne) Init() *ClassOne {
|
|
ret := &ClassOne{}
|
|
ret.ptr = unsafe.Pointer(C.ClassOne_init(o.ptr))
|
|
return ret
|
|
}
|
|
|