/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 2.0.1
 * 
 * This file is not intended to be easily readable and contains a number of 
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG 
 * interface file instead. 
 * ----------------------------------------------------------------------------- */

package example


type _swig_fnptr *byte
type _swig_memberptr *byte


func _swig_allocatememory(int) *byte
func _swig_internal_allocate(len int) *byte {
	return _swig_allocatememory(len)
}

func _swig_allocatestring(*byte, int) string
func _swig_internal_makegostring(p *byte, l int) string {
	return _swig_allocatestring(p, l)
}

func _swig_internal_gopanic(p *byte, l int) {
	panic(_swig_allocatestring(p, l))
}

type _swig_DirectorCallback struct {
	SwigcptrCallback
	v interface{}
}

func (p *_swig_DirectorCallback) Swigcptr() uintptr {
	return p.SwigcptrCallback.Swigcptr()
}

func (p *_swig_DirectorCallback) SwigIsCallback() {
}

func (p *_swig_DirectorCallback) DirectorInterface() interface{} {
	return p.v
}

func _swig_NewDirectorCallbackCallback(*_swig_DirectorCallback) SwigcptrCallback

func NewDirectorCallback(v interface{}) Callback {
	p := &_swig_DirectorCallback{0, v}
	p.SwigcptrCallback = _swig_NewDirectorCallbackCallback(p)
	return p
}

func _swig_wrap_DeleteDirectorCallback(uintptr)

func DeleteDirectorCallback(arg1 Callback) {
	_swig_wrap_DeleteDirectorCallback(arg1.Swigcptr())
}

func Swiggo_DeleteDirector_Callback(p *_swig_DirectorCallback) {
	p.SwigcptrCallback = 0
}

type _swig_DirectorInterfaceCallbackRun interface {
	Run()
}

func _swig_wrap__swig_DirectorCallback_upcall_Run(SwigcptrCallback)
func (swig_p *_swig_DirectorCallback) Run() {
	if swig_g, swig_ok := swig_p.v.(_swig_DirectorInterfaceCallbackRun); swig_ok {
		swig_g.Run()
		return
	}
	_swig_wrap__swig_DirectorCallback_upcall_Run(swig_p.SwigcptrCallback)
}

func DirectorCallbackRun(p Callback) {
	_swig_wrap__swig_DirectorCallback_upcall_Run(p.(*_swig_DirectorCallback).SwigcptrCallback)
}

func Swig_DirectorCallback_callback_run(p *_swig_DirectorCallback) {
	p.Run()
}

type SwigcptrCallback uintptr

func (p SwigcptrCallback) Swigcptr() uintptr {
	return (uintptr)(p)
}

func (p SwigcptrCallback) SwigIsCallback() {
}

func (p SwigcptrCallback) DirectorInterface() interface{} {
	return nil
}

func _swig_wrap_delete_Callback(uintptr)

func DeleteCallback(arg1 Callback) {
	_swig_wrap_delete_Callback(arg1.Swigcptr())
}

func _swig_wrap_Callback_run(SwigcptrCallback)

func (arg1 SwigcptrCallback) Run() {
	_swig_wrap_Callback_run(arg1)
}

func _swig_wrap_new_Callback() SwigcptrCallback

func NewCallback() Callback {
	return _swig_wrap_new_Callback()
}

type Callback interface {
	Swigcptr() uintptr
	SwigIsCallback()
	DirectorInterface() interface{}
	Run()
}

type SwigcptrCaller uintptr

func (p SwigcptrCaller) Swigcptr() uintptr {
	return (uintptr)(p)
}

func (p SwigcptrCaller) SwigIsCaller() {
}

func _swig_wrap_new_Caller() SwigcptrCaller

func NewCaller() Caller {
	return _swig_wrap_new_Caller()
}

func _swig_wrap_delete_Caller(uintptr)

func DeleteCaller(arg1 Caller) {
	_swig_wrap_delete_Caller(arg1.Swigcptr())
}

func _swig_wrap_Caller_delCallback(SwigcptrCaller)

func (arg1 SwigcptrCaller) DelCallback() {
	_swig_wrap_Caller_delCallback(arg1)
}

func _swig_wrap_Caller_setCallback(SwigcptrCaller, uintptr)

func (arg1 SwigcptrCaller) SetCallback(arg2 Callback) {
	_swig_wrap_Caller_setCallback(arg1, arg2.Swigcptr())
}

func _swig_wrap_Caller_call(SwigcptrCaller)

func (arg1 SwigcptrCaller) Call() {
	_swig_wrap_Caller_call(arg1)
}

type Caller interface {
	Swigcptr() uintptr
	SwigIsCaller()
	DelCallback()
	SetCallback(arg2 Callback)
	Call()
}


type SwigcptrSwigDirector_Callback uintptr
type SwigDirector_Callback interface {
	Swigcptr() uintptr;
}
func (p SwigcptrSwigDirector_Callback) Swigcptr() uintptr {
	return uintptr(p)
}

type SwigcptrVoid uintptr
type Void interface {
	Swigcptr() uintptr;
}
func (p SwigcptrVoid) Swigcptr() uintptr {
	return uintptr(p)
}

